首页 > 解决方案 > Rails 5:如何在不更改 URL 的情况下在控制器中呈现视图?

问题描述

我有以下路线:

Shop::Engine.routes.draw do
  root to: 'static_pages#index'
  get 'jobs/apply'=>'applicants#new'
  resources :applicants, only: [:create]
end

这按预期工作。url 呈现预期的视图。

该页面包含一个表单。当用户提交成功时,我想用成功消息替换表单。考虑到这一点,我创建了一个新模板:

# success.html.erb
<h1>Thank you</h1>
<p>Your application has been submitted.</p>

我的创建操作如下所示:

def create
  @applicant = Applicant.new(safe_params)

  if @applicant.save
    render 'success'
  else
    render 'new'
  end
end

它按预期工作,除了地址栏中的 URL 更改为:http://localhost:3000/applicants。我希望它保留:http://localhost:3000/jobs/apply.

如何在不更改 url 的情况下呈现成功消息视图?我是否走对了路?是否有另一种呈现成功消息而不重定向到另一条路线的方法?

标签: ruby-on-railsroutes

解决方案


推荐阅读