2013-09-09 2 views
0

Я создал миграцию для изменения модели данных, чтобы сделать мою модель диалога полиморфной.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 модель создается с правильными ассоциациями.

спасибо.

+0

Вы уверены, что это не так, как вы думаете? звучит как устаревший файл fixture – firien

+0

есть ли старая ассоциация в классе Deal с цепочками без опции 'as'? – tihom

+0

@firien: да! Я посмотрел на журналы и отследил их до этой точной линии. – NolanDC

ответ

0

Понял это (спасибо Райан Биггс).

Проблемы заключался в том, что сбросить мое заявление, я звоню

rake db:drop && rake db:migrate && rake db:seed 

, которые не давали достаточно времени для информации столбца будет перезагружена между мигрирующим и посевом.

Смежные вопросы