Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Отношения Rails One-One - местоположение внешнего ключа

Автор вопроса: christo16Ответов: 1

У меня две модели, адрес и страна. Адрес содержит базовую информацию об адресе (строка 1, строка 2, город и т. д.) и имеет отношение один к одному со страной.

Таблица стран доступна только для чтения, я не хочу, чтобы она менялась.

У меня есть формы, создающие столбец country_id в таблице "адреса", но он ищет address_id в таблице стран.

Как указать rails использовать country_id в таблице адресов для поиска страны?

Вот как выглядят модели:

class Address < ActiveRecord::Base
   belongs_to :consultant
   has_one :country
   accepts_nested_attributes_for :country
end

class Country < ActiveRecord::Base
   belongs_to :address
end

Спасибо!

ruby-on-railsruby-on-rails-3activerecord

Ответы

Ответ 1 · рейтинг 1 · MBO

Из документации belongs_to:

Этот метод следует использовать только в том случае, если этот класс содержит внешний ключ.

Итак, ваш код должен быть:

class Address < ActiveRecord::Base
  has_to :consultant
  belongs_to :country
  accepts_nested_attributes_for :country
end

class Country < ActiveRecord::Base
  has_one :address
end

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы