1

我无法让这个工作。我想要做的是有一个填充团队编号的下拉列表,然后根据用户选择的那个,它会将他们带到该团队的编辑页面。我可以让下拉列表正确填充,但我无法让它带我到正确的页面。当我以不同的方式对其进行测试时,它确实将我带到了正确的页面,所以我不认为这是一个路由错误。

有问题的代码:

<%= 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=>"edit", :controller=>"corevalues", :id=>nil}

但是,如果我将其注释掉并使用以下命令对其进行测试:

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

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

4

1 回答 1

0

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

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

请参阅 ActionView 参考

于 2013-06-03T14:22:35.760 回答