0

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

4

1 回答 1

1

你忘了给哪个组,你通常应该做类似的事情

group_path(@group, create_video: true)

希望这可以帮助。

于 2012-06-15T08:54:19.100 回答