使用附加参数渲染“show”模板会导致路由错误

时间:2012-06-15 08:47:52

标签: ruby-on-rails ajax ruby-on-rails-3 routing

我有一个模板“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中明确地匹配它,但是有更好的方法吗?非常感谢

1 个答案:

答案 0 :(得分:1)

你忘了给哪一组,通常应该做点什么

group_path(@group, create_video: true)

希望这会有所帮助。