У меня проблемы с моделью, не соблюдающей политику: foreign_key.
Модель персонажа имеет следующие поля:
Имя: строка
Уровень: ИНТ
сфера: строка
realm_id: целое число
class Character < ActiveRecord::Base
belongs_to :realm
end
Моя модель Realms выглядит так:
class Realm < ActiveRecord::Base
has_many :characters, :foreign_key => "realm_id"
end
Однако, похоже, что она заставляет модель персонажа использовать столбец: realm в качестве значения Foreign_key вместо: realm_id. Я понятия не имею, почему или как это исправить. Есть ли другой способ заставить его игнорировать поле: realm и перейти к: realm_id без необходимости изменять имя столбца?
[Изменить для ясности]
Модель персонажа имеет поле realm_id: integer. Я пытался не иметь Foreign_key, но результаты с обоими идентичны.
ruby-1.9.2-p136: 012> c = Character.new
=> #
ruby-1.9.2-p136: 013> c.realm = "Саргерас"
ActiveRecord :: AssociationTypeMismatch: ожидается область (# 2154038240), получена строка (# 2151988680)
Несмотря на то, что у него есть Foreign_key, он просто отказывается отпустить столбец области.
[Изменить 2]
Столбец области просто вступит во владение из-за ассоциации has_many и own_to. Пока что нет способа сломать это, поэтому решение состоит в том, чтобы либо удалить столбец (подход, который я выберу), либо переименовать его во что-то другое.