嗨,我非常初学铁路。我有一个问题的建议将不胜感激。 我有两个模型“用户”和“资产” “资产”由“用户”创建,资产“可以分配给”用户“模式
Asset { id,name,creator_id,assigned_to_id,price,...}
User{ id,name,....}
现在在资产模型类关联中
class Asset < ActiveRecord::Base
{
#validation
belongs_to :creator ,:class_name=>'User'
belongs_to :assigned_to, :class_name=>'User' ,:foreign_key=>'assigned_to_id'
}
和用户模型
class User < ActiveRecord::Base
{
#any validation and other stuff
has_many :assets #did not specify either this association is for creator , or assigned_to user.how can is specify that??
}
现在在资产展示视图中,我可以使用
获取创建者名称@asset.creator.name
但无法分配名称
@asset.assigned_to.name =>(error is )undefined method `first_name' for nil:NilClas
和 @ asset.assigned_to_id.name =&gt;(错误)未定义方法`first_name'表示1:Fixnum
任何建议如何与同一模型进行双重关联
答案 0 :(得分:1)
好的解决方案在我的最后评论中。 Multiple relation with same model
class Asset < ActiveRecord::Base
belongs_to :creator ,:class_name=>'User'
belongs_to :assigned_to, :class_name=>'User'
end
user.rb
class User < ActiveRecord::Base
has_many :created_assets, :foreign_key => 'creator_id', :class_name => 'Asset'
has_many :assigned_assets , :foreign_key => 'assigned_to_id', :class_name => 'Asset'
end