我有一个模板“groups/show.html.erb”我有一个链接,它通过将参数传递给控制器来呈现部分。然后控制器使用该参数来识别要进行哪个 JS 调用。
<%= link_to 'Add a Video', group_path(create_video: true), remote: true %>
然后在控制器中
elsif params[:create_video]
@video = Group.find(params[:id]).videos.build
respond_to do |format|
format.js {render action: 'create_video'}
end
这会产生一个部分表单,该表单使用 videos_controller 中的 create 方法创建视频。如果表单验证失败并且我尝试呈现“组/显示”,则会收到路由错误:
_create_video.html.erb
<%= form_for @video, :url => group_videos_path(@group) do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
没有路线匹配 {:action=>"show", :controller=>"groups", :create_video=>true}
为了完成这项工作,我认为您可以在 routes.rb 中明确匹配它,但有更好的方法吗?谢谢一堆