Ruby on rails Rails中具有嵌套属性的一对多关系的单个字段
我正在使用Rails3.2和Ruby1.9.3开发RubyonRails应用程序。我将mongodb与mongoid一起使用,我想问您是否有可能为一对多关系中的单个对象实现单个“字段”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
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应该为房间和房屋提供新的创建方法。我真正想说的是:可以在一个房子中创建多个房间而不保存房子,在创建房间的过程结束时,保存房子?或者我必须填写一张房间表格,提交房间和房子的表格,然后再添加另一张表格以添加新房间?