【发布时间】:2013-02-15 16:14:56
【问题描述】:
Personhas_oneBrain,我应该期望brain 出现在由attributes() 为Person 返回的散列中吗?如果是这样,如何做到这一点?
Rails 控制台输出:
1.9.3p327 :003 > Person.new.attributes
=> {"id"=>nil, "name"=>nil, "created_at"=>nil, "updated_at"=>nil}
1.9.3p327 :004 > Brain.new.attributes
=> {"id"=>nil, "weight_kg"=>nil, "created_at"=>nil, "updated_at"=>nil, "person_id"=>nil}
两个型号分别是Person和Brain:
class Person < ActiveRecord::Base
has_one :brain
attr_accessible :name
attr_accessible :brain
attr_accessible :brain_attributes
accepts_nested_attributes_for :brain
end
class Brain < ActiveRecord::Base
belongs_to :person
attr_accessible :weight_kg
attr_accessible :person
attr_accessible :person_attributes
accepts_nested_attributes_for :person
end
person_id 显示在Brain 的属性中,因为brains 表有一个person_id 列。 people 表不需要这样的列。
【问题讨论】:
标签: ruby-on-rails associations nested-attributes rails-activerecord has-one