我的应用程序可以使用两条路径。
路径1:正在编辑有效记录。
persons#show
persons#edit
persons#show
路径2:正在编辑无效记录。
persons#invalid_records
persons#edit
persons#show
如何将路径2 最终返回persons#invalid_records
而不是persons#show
?
根据要求修改发布路线:
resources :persons do
scope module: :persons do
resources :notes
resources :reports
end
collection do
match 'invalid_records' => 'persons#invalid_records', via [:get], as :invalid_records
end
member do
get 'transactions'
end
end
答案 0 :(得分:0)
所以我想发一个答案来帮助让任何人开始可能会感到困惑。感谢@MaxWilliams的想法。
我添加了以下内容......
<%= link_to "Edit", edit_person_path(record, :invalid_record => true) %>
以及我_form.html.erb
<%= f.hidden_field :invalid_record, :value => params[:invalid_record] %>
最后在persons_controller.rb
。
def update
respond_to do |format|
if @person.update(person_params)
if params[:person][:invalid_record] == true
#...
else
#...
end
else
# ...
end
end
end