我正在尝试构建一个rails表单,该表单将使用collection_select调用将局部变量传递回控制器,并且正在生成我一生都无法解决的错误。
该表单位于 Network#new 视图中。collection_select 应该创建一个现有超级用户的下拉菜单,因此可以在创建时为新网络分配一个超级用户(通过 superuser_id)。Network#create 方法知道如何处理 superuser_id。所以我的表格是这样的:
<%= form_for(@network) do |f| %>
<%=render(partial: 'edit_form', locals: {f: f} ) %>
<% fields_for 'superuser_id', url: {action: :create} do |su| %>
<div>
<%= su.label 'Network Superuser' %>
<%= su.collection_select( 'superuser_id',@superusers, :id, :user_name) %>
</div>
<% end %>
<div>
<%= f.submit %>
</div>
我得到的错误是:
ActionView::Template::Error (undefined method `superuser_id' for {:url=>{:action=>:create}}:Hash):
6: <% fields_for 'superuser_id', url: {action: :create} do |su| %>
7: <div>
8: <%= su.label 'Network Superuser' %>
9: <%= su.collection_select( 'superuser_id', @superusers, :id, :user_name) %>
app/views/networks/new.html.erb:9:in `block (2 levels) in _app_views_networks_new_html_erb__687644901_79475060'
有什么想法我哪里出错了吗?
谢谢
史蒂夫