2015-05-10 2 views
2

http://pastebin.com/a8fVSCcA Я пытаюсь реализовать модель вопросов и ответов, я добавил has_many и own_to, но они, кажется, вызывают ошибки.Ошибка Ruby во время миграции базы данных и семян

[email protected]:~/workspace (master) $ rake db:migrate 
== 20150509125146 CreateQuestions: migrating ================================== 
-- create_table(:questions) 
-- has_many(:answers) 
rake aborted! 
StandardError: An error has occurred, this and all later migrations canceled: 

undefined method `has_many' for #<CreateQuestions:0x00000006b93010>/usr/local/rvm/gems/[email protected]/gems/activerecord-4.1.6/lib/active_record/migration.rb:648:in `block in method_missing' 
/usr/local/rvm/gems/[email protected]/gems/activerecord-4.1.6/lib/active_record/migration.rb:621:in `block in say_with_time' 
/usr/local/rvm/gems/[email protected]/gems/activerecord-4.1.6/lib/active_record/migration.rb:621:in `say_with_time' 
/usr/local/rvm/gems/[email protected]/gems/activerecord-4.1.6/lib/active_record/migration.rb:641:in `method_missing' 
/home/ubuntu/workspace/db/migrate/20150509125146_create_questions.rb:7:in `block in change' 

Проблемный код:

#Questions Model 
class CreateQuestions < ActiveRecord::Migration 
def change 
    create_table :questions do |t| 
    t.string :title 
    t.text :body 
    t.boolean :resolved 
    has_many :answers 
    t.timestamps 
    end 
end 
end 


#Answers 
class CreateAnswers < ActiveRecord::Migration 
def change 
    create_table :answers do |t| 
    t.text :body 
    t.references :question, index: true 
    belongs_to :question 
    t.timestamps 
    end 
end 
end 
+0

Я вытащил соответствующий код из pastebin сюда, – Doon

ответ

2

Вы не можете использовать has_many или belongs_to в миграции.

Извлеките сообщение has_many из вопросов миграции и удалите belongs_to из ответов на миграцию. И вы должны быть в порядке .. Эти методы необходимо добавить к вашим моделям, а не к вашим миграциям.

+0

Спасибо, и я отсюда в :) Спасибо! – Recon

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