Я создал миграцию для изменения модели данных, чтобы сделать мою модель диалога полиморфной.Rails polymorphic association добавляет дополнительное поле
Вот мои файлы, похудели:
# deal.rb
class Deal < ActiveRecord::Base
has_many :conversations, as: :conversationable
end
# conversation.rb
class Conversation < ActiveRecord::Base
belongs_to :conversationable, polymorphic: true
end
В моем seeds.rb, я звоню строку:
conversation = deal.conversations.create!(:seller_id => deal.user.id, :buyer_id => user.id)
, который генерирует ошибку:
SQLite3::SQLException: table conversations has no column named deal_id: INSERT INTO "conversations" ("buyer_id", "conversationable_id", "conversationable_type", "created_at", "deal_id", "seller_id", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?)
Почему рельсы все еще вставляют deal_id? Есть ли остатки ассоциации в другом месте, которые я должен удалить?
При запуске того же кода в консоли rails модель создается с правильными ассоциациями.
спасибо.
Вы уверены, что это не так, как вы думаете? звучит как устаревший файл fixture – firien
есть ли старая ассоциация в классе Deal с цепочками без опции 'as'? – tihom
@firien: да! Я посмотрел на журналы и отследил их до этой точной линии. – NolanDC