Ruby on Rails:使用Collection_select和编辑路径

时间:2013-06-03 14:06:03

标签: ruby-on-rails

我无法解决这个问题。我想要做的是有一个下拉列表,其中包含团队编号,然后根据用户选择的下拉列表将其带到该团队的编辑页面。我可以让下拉列表正确填充,但我不能让它带我到正确的页面。当我以不同的方式测试时,它会将我带到正确的页面,因此我不认为这是路由错误。

有问题的代码:

<%= form_tag edit_corevalue_path(@corevalue), method: 'get' do %>
<%= collection_select(:corevalue, :corevalue_id, Corevalue.all, :id, :teamNumber, :prompt => "Select Team") %>
<%= submit_tag "Submit!", :name => nil , class: "btn btn-large btn-primary" %>
<% end %>

我收到错误: 没有路线匹配{:action =&gt;“edit”,:controller =&gt;“corevalues”,:id =&gt; nil}

但如果我发表评论并用以下方法进行测试:

<%= link_to "TEST", edit_corevalue_path(2) %>

然后它工作并带我到正确的页面。我相信错误是它在使用@corevalue时没有获得正确的id,但是我不太确定如何修复它或者正确的语法是什么。任何帮助是极大的赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

我认为你想使用:id而不是:corevalue_id作为collection_select函数的第二个参数:

<%= collection_select(:corevalue, :id, Corevalue.all, :id, :teamNumber, :prompt => "Select Team") %>

See ActionView reference