Ruby on rails Rails中具有嵌套属性的一对多关系的单个字段

Ruby on rails Rails中具有嵌套属性的一对多关系的单个字段,ruby-on-rails,ruby,mongodb,haml,nested-attributes,Ruby On Rails,Ruby,Mongodb,Haml,Nested Attributes,我正在使用Rails3.2和Ruby1.9.3开发RubyonRails应用程序。我将mongodb与mongoid一起使用,我想问您是否有可能为一对多关系中的单个对象实现单个“字段” class House include Mongoid::Document embeds_many :rooms accepts_nested_attributes_for :rooms field :city, type: String end class Room include

我正在使用Rails3.2和Ruby1.9.3开发RubyonRails应用程序。我将mongodb与mongoid一起使用,我想问您是否有可能为一对多关系中的单个对象实现单个“字段”

class House
  include Mongoid::Document

  embeds_many :rooms
  accepts_nested_attributes_for :rooms

  field :city, type: String

end

class Room
  include Mongoid::Document

  embedded_in :house

  field :color, type: String
  field :area, type: String

end
我想做一个视图,你可以添加更多的房间,而你正在创建一个房子。比如说,

- form_for @house do |f|

    = f.input :city

    (show the list of rooms I am creating)

    - f.fields_for :rooms, @house.rooms.build do |builder|
         = builder.input :color
         = builder.input :area
行为应如下所示:

您可以在同一表单中创建多个房间,完成添加这些房间后,提交房屋表单以保存包含房间的房屋


提前感谢大家

假设房间有一个house\u id属性,我相信你所拥有的应该是有效的(尽管你可能需要在房屋模型内部和行的字段中对房间进行多重化?)。。。我可能误解了这个问题…我想做的是创建一个房间,提交房间表格,但不是房子表格。如果我尝试填写房间表单,然后提交,并且我再次执行相同的过程,在不提交房屋表单的情况下,我将覆盖最后一个房间,而不是添加新房间。您的控制器是什么样子的?接受嵌套属性?我想也应该是复数,例如,接受\u嵌套的\u属性\u for:roomsMy controller应该为房间和房屋提供新的创建方法。我真正想说的是:可以在一个房子中创建多个房间而不保存房子,在创建房间的过程结束时,保存房子?或者我必须填写一张房间表格,提交房间和房子的表格,然后再添加另一张表格以添加新房间?