我有两个具有HABTM关联的模型User
和Category
。
我想从我的视图中的Category
项集合中生成复选框,并将它们与current_user
相关联。
我该怎么做?
感谢。
P.S。我知道我可以使用options_from_collection_for_select
的下拉菜单执行相同操作。我也知道Rails有一个checkbox_tag
帮助器。但不太确定如何做到这两点。我知道我可以用每个循环或其他东西手动完成它,但我想知道Rails 3中是否存在我缺少的原生内容。
答案 0 :(得分:2)
您是否查看了formtastic或simple_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
选项。