Ruby on rails 3 两个可能与相同型号的轨道3相关

Ruby on rails 3 两个可能与相同型号的轨道3相关,ruby-on-rails-3,associations,has-many,Ruby On Rails 3,Associations,Has Many,嗨,我是rails的初学者。我有一个问题的建议将不胜感激。 我有两个模型用户和资产 资产由用户创建,并且可以将资产分配给用户架构 Asset { id,name,creator_id,assigned_to_id,price,...} User{ id,name,....} 现在,在资产模型类关联中 class Asset < ActiveRecord::Base { #validation belongs_to :creator ,:class_name=>'User' be

嗨,我是rails的初学者。我有一个问题的建议将不胜感激。 我有两个模型用户和资产 资产由用户创建,并且可以将资产分配给用户架构

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'
}
但无法将_分配给名称

@asset.assigned_to.name =>(error is )undefined method `first_name' for nil:NilClas
及 @asset.assigned_to_id.name=>错误为1:Fixnum的未定义方法'first_name'


在我最后的评论中,有任何关于如何与同一型号进行双重关联的建议

确定解决方案。

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

好的,我的最后一句话中提到了解决方案。

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

阅读后,我已更改了我的用户模型类用户“creator\u id”,:class\u name=>“Asset”有许多:assigned\u assets,:foreign\u key=>“assigned\u to\u id”,:class_name=>'Asset'}和资产模型没有变化,现在它在控制台中运行良好,控制台的输出为u=User.new:first_name=>'foo'u.id=12 u.inspect=>也为u2.inspect=>…更多关于下一个注释现在让我们创建资产irbmain:032:0>资产=Asset.new:assigned_to_id=>u,:creator_id=>u2,:name=>'Android'=>now asset.assigned_to.name=>error undefined方法'name'用于nil:NilClass,asset.creator.first_name的错误与asset.creator.first_name相同,但如果我在声明资产后进行赋值,例如a.assigned_to=u,a.creator=u2现在a.assigned_to.first_name=>'bar'和a.creator.first_name=>'foo'{有趣}但是这些都是用于控制台的。在视图中只显示asset.creator.first\u name有效。请允许我在阅读我已经更改了我的用户模型类User'creator\u id',:class\u name=>“asset'has\u many:assigned\u assets,:foreign\u key=>“assigned\u to\u id”,:class_name=>'Asset'}和资产模型没有变化,现在它在控制台中运行良好,控制台的输出为u=User.new:first_name=>'foo'u.id=12 u.inspect=>也为u2.inspect=>…更多关于下一个注释现在让我们创建资产irbmain:032:0>资产=Asset.new:assigned_to_id=>u,:creator_id=>u2,:name=>'Android'=>now asset.assigned_to.name=>error undefined方法'name'用于nil:NilClass,asset.creator.first_name的错误与asset.creator.first_name相同,但如果我在声明资产后进行赋值,例如a.assigned_to=u,a.creator=u2现在a.assigned_to.first_name=>'bar'和a.creator.first_name=>'foo'{有趣}但是这些都是用于控制台的。在视图中只有asset.creator.first_name起作用。请给我任何建议
class Asset < ActiveRecord::Base

belongs_to :creator ,:class_name=>'User'
belongs_to :assigned_to, :class_name=>'User' 

end
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