我有这段代码:
模型/ agent.rb
class Agent < ActiveRecord::Base
has_one :user, :as => :profile
end
模型/ default.rb
class Default < ActiveRecord::Base
has_one :user, :as => :profile
end
模型/ user.rb
class User < ActiveRecord::Base
belongs_to :profile, :polymorphic => true
end
example.rb
a = Agent.new
a.phone = '0000000'
a.status = 'xis'
u = User.new
u.name = 'Name'
u.email = 'email@email.com'
u.password = 'new123'
u.profile = agent
u.save!
这是编写此代码的唯一方法吗?
在多态关系中插入记录有什么更好的方法?
我只能有一个Agent.new
?
如何编写更新语句?
答案 0 :(得分:0)
不是真的答案,但是......
如果更有需要,可以内联创作
u.profile = Agent.new phone: '0000000', status: 'xis'
更新内联属性
u.profile.update_attributes phone: '0000000'
不幸的是,对于多态关系,build_other
方法并不存在,因为这是非多态关系中用于动态插入关联的首选方法。
见
自动生成的方法
在: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html