Collection_select总是只有1个项目,而不是数组?在轨道上的红宝石

时间:2011-11-09 10:14:45

标签: ruby-on-rails ruby collections

我在Ruby on Rails中实现,我正在尝试使用collection_select,我是一个新手。我只想做,我有一个包含组的列表和一个包含角色的列表。这些都是模型。所以,我列出了我的组,然后,我有一个下拉列表,其中包含该组的角色。每组有1个角色。 我已经实现了一些代码,但collection_select总是只记住最后一项。所以我想要一个包含所需角色的组的列表。但是,现在我只有1项。这是我的观点:

<% @groups.each do |group| %>
      <li>      
       <%= collection_select('group', 'role_id', @roles, 'id', 'name') %>
      </li>
<% end %>

我真的不知道现在该怎么办?谁知道我做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

所以,我假设你正在做一个表格?表单属于哪种模型?

为了帮助调试此类事情,通常最好检查您的development.log文件,以查看表单传递给控制器​​的参数。类似的东西:

Parameters: {"commit"=>"Save", "action"=>"update", "_method"=>"put", 
    "id"=>"6168", "group"=>{"role_id"=>"2", ...}, "controller"=>"groups"}

现在,通常Rails控制器需要一个包含单个模型数据的表单。如果您想同时更新多个模型或行,则必须具有创造性。

要做的第一件事可能是尝试返回一组数组。您的表单目前没有使用数组。我怀疑这些Rails助手会帮助你。像这样的助手被设计为一次更新一个ActiveRecord对象。

您可能需要重新考虑应用程序的设计以更好地适应Rails方式,或者滚动自己的表单并迭代它通过的数组。这样做Rails方式是推荐的选择,它可能需要一些大脑弯曲从你的结束到那个部分。如果您需要帮助,可能会提供有关您实际尝试实现的更多信息。