如何从集合中生成一堆复选框?

时间:2012-06-15 06:06:23

标签: ruby-on-rails ruby-on-rails-3

我有两个具有HABTM关联的模型UserCategory

我想从我的视图中的Category项集合中生成复选框,并将它们与current_user相关联。

我该怎么做?

感谢。

P.S。我知道我可以使用options_from_collection_for_select的下拉菜单执行相同操作。我也知道Rails有一个checkbox_tag帮助器。但不太确定如何做到这两点。我知道我可以用每个循环或其他东西手动完成它,但我想知道Rails 3中是否存在我缺少的原生内容。

2 个答案:

答案 0 :(得分:2)

您是否查看了formtasticsimple_form

他们有助手更轻松地编写表单,也可以处理简单的关联。

E.g。在simple_form你可以写

= simple_form_for @user do
  = f.association :categories, :as => :check_boxes

form_tastic中你会写

= simple_form_for @user do
  = f.input :categories, :as => :check_boxes

希望这有帮助。

答案 1 :(得分:0)

您可以使用collection_select并为其提供选项。假设您有一个围绕用户实例的表单构建器,您可以执行以下操作:

form_for current_user do |f|
f.collection_select(
  :category_ids,            # the param key, so params[:user][:category_ids]
  f.object.categories,      # the collection of items in the list
  :id,                      # option value
  :name                     # option string
)
end

如果需要,您可能希望在最后传递:multiple => true选项。