Ruby on Rails - 为没有父对象的对象集合创建表单

时间:2012-03-20 16:03:43

标签: ruby-on-rails

在更典型的情况下(即正在编辑/创建的对象属于另一个模型),以下内容将起作用:

模型

Person < AR:Base
  has_many :things
end

Thing < AR:Base
  belongs_to :person
end

HAML

=form_for @person do |f|
  =f.fields_for :things do |thing_form|
   =thing_form.description

但是我需要编辑一组东西(从数据库中查询..选择*来自created_at&gt; 2012-01-01的东西)而不考虑他们所属的人(有些甚至不属于人)。

我的fields_for / should /看起来像这样,但我不确定如何在此之前设置它(因为我没有对象来构建表单)

...
-@things.each do |thing|
  =f.fields_for :thing, thing do |thing_fields|
    =thing_form.description

如果我可以制作一个'虚拟'人并用我选择的东西加载东西数组,那么保存它而不实际保存假人,那会起作用......但是如何? :)

1 个答案:

答案 0 :(得分:1)

我对用户类别有同样的问题。请参阅下面的解决方案。

- Category.all.each do |c|
    = check_box_tag "user[category_ids][]", c.id, @user.categories.include?(c), :id => "user_category_ids_#{c.id}"