使用嵌套属性创建对象

时间:2013-07-06 17:21:57

标签: ruby-on-rails

我需要创建一个表单,它将创建另外两个对象作为属性的对象,但这些对象应该可以从包含这些对象模板的下拉列表中获得。

class User < ActiveRecord::Base
    accepts_nested_attributes_for :adresses, :profiles
end

class Address < ActiveRecord::Base
    attr_accessible :city, :country
    belongs_to :user
end

class Profile < ActiveRecord::Base
    attr_accessible :nickname, :password
    belongs_to :user
end

棘手的部分可能是,用户没有列'address_id'或'profiles_id',一切都应该转到配置文件和地址,它们与用户在同一时刻创建(它们与模板具有相同的属性) ) 我真的可以使用一些帮助,不要解释完整的代码解决方案,但一些提示会很好

1 个答案:

答案 0 :(得分:2)

尝试此设置:

class User < ActiveRecord::Base
  has_one :address
  has_one :profile

  accepts_nested_attributes_for :address, :profile
  attr_accessible :adress_attributes, :profile_attributes
end

class Address < ActiveRecord::Base
  attr_accessible :city, :country
  belongs_to :user
end

class Profile < ActiveRecord::Base
  attr_accessible :nickname, :password
  belongs_to :user
end

请参阅doc