我有一个模板“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方法创建视频的表单。如果表单上的验证失败并且我尝试渲染“groups / show”,则会出现路由错误:
_create_video.html.erb
<%= form_for @video, :url => group_videos_path(@group) do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
没有路线匹配{:action =&gt;“show”,:controller =&gt;“groups”,:create_video =&gt; true}
为了完成这项工作,我认为你可以在routes.rb中明确地匹配它,但是有更好的方法吗?非常感谢
答案 0 :(得分:1)
你忘了给哪一组,通常应该做点什么
group_path(@group, create_video: true)
希望这会有所帮助。