множественные ассоциации между двумя моделями в рельсах - PullRequest
3 голосов
/ 04 декабря 2010

Я пытаюсь связать две модели двумя способами в приложении Rails 3.У людей много домашних животных, и у каждого человека может быть один любимый питомец.

Использую ли я правильные ассоциации и внешние ключи?

Я на самом деле получаю два разных числа, когда делаю person.favorite_pet_id и person.favour_pet.id

class Person < ActiveRecord::Base
  has_many :pets # pets table has a person_id
  has_one :favorite_pet, :class_name => 'Pet' # persons table has favorite_pet_id 
end


class Pet < ActiveRecord::Base
  belongs_to :person # using person_id in pets table
end

1 Ответ

4 голосов
/ 04 декабря 2010

Поскольку, похоже, в таблице персон у вас есть Favorites_pet_id (как и вы), вам нужно использовать ассоциацию "own_to" вместо "has_one", например так:

class Person < ActiveRecord::Base
  has_many :pets # pets table has a person_id
  belongs_to :favorite_pet, :class_name => 'Pet' # persons table has favorite_pet_id 
end


class Pet < ActiveRecord::Base
  belongs_to :person # using person_id in pets table
end

Это должно исправитьваша проблема.Надеюсь, это поможет!

...