我在Ruby on Rails中实现,我正在尝试使用collection_select,我是一个新手。我只想做,我有一个包含组的列表和一个包含角色的列表。这些都是模型。所以,我列出了我的组,然后,我有一个下拉列表,其中包含该组的角色。每组有1个角色。 我已经实现了一些代码,但collection_select总是只记住最后一项。所以我想要一个包含所需角色的组的列表。但是,现在我只有1项。这是我的观点:
<% @groups.each do |group| %>
<li>
<%= collection_select('group', 'role_id', @roles, 'id', 'name') %>
</li>
<% end %>
我真的不知道现在该怎么办?谁知道我做错了什么?
由于
答案 0 :(得分:0)
所以,我假设你正在做一个表格?表单属于哪种模型?
为了帮助调试此类事情,通常最好检查您的development.log文件,以查看表单传递给控制器的参数。类似的东西:
Parameters: {"commit"=>"Save", "action"=>"update", "_method"=>"put",
"id"=>"6168", "group"=>{"role_id"=>"2", ...}, "controller"=>"groups"}
现在,通常Rails控制器需要一个包含单个模型数据的表单。如果您想同时更新多个模型或行,则必须具有创造性。
要做的第一件事可能是尝试返回一组数组。您的表单目前没有使用数组。我怀疑这些Rails助手会帮助你。像这样的助手被设计为一次更新一个ActiveRecord对象。
您可能需要重新考虑应用程序的设计以更好地适应Rails方式,或者滚动自己的表单并迭代它通过的数组。这样做Rails方式是推荐的选择,它可能需要一些大脑弯曲从你的结束到那个部分。如果您需要帮助,可能会提供有关您实际尝试实现的更多信息。