Две ассоциации has_may с той же моделью Rail 3 - PullRequest
1 голос
/ 24 марта 2011

Привет, я новичок в рельсах.У меня есть проблема, предложение будет оценено.у меня есть две модели "пользователь" и "актив", "актив" создан "пользователем", и актив "может быть назначен схеме" пользователя "

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 => (ошибка) неопределенный метод `first_name 'для 1: Fixnum

любое предложение, как я могу сделать двойную ассоциацию с той же моделью

1 Ответ

1 голос
/ 07 апреля 2011

хорошо решение было в моем последнем комментарии. Множественное отношение с той же моделью

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
...