2011-02-08 21 views
0

私はRailsアプリケーションに取り組んできましたが、頭を抱えることのできない関連付けに悩まされています。ここでRailsの関連で問題が発生しました

私のモデルです:

ユーザーモデル

class User < ActiveRecord::Base 
    has_many :events, :dependent => :destroy 
end 

イベントモデル

class Event < ActiveRecord::Base 
    belongs_to :user 
    has_many :items, :dependent => :destroy 
end 

項目モデル

私はレールコンソールに向かうと、このような何かを行うと
class Item < ActiveRecord::Base 
    belongs_to :event 
end 

は:

> User.last.events.last.items 

私はこのようなエラーが表示されます。私はこのように私の移行を設定している

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: items.event_id: SELECT "items".* FROM "items" WHERE ("items".event_id = 1) 

class CreateItems < ActiveRecord::Migration 
    def self.up 
    create_table :items do |t| 
     t.string :description 
     t.string :name 
     t.integer :event_id 

     t.timestamps 
    end 
    add_index :items, :event_id 
    end 

    def self.down 
    drop_table :items 
    end 
end 

私の団体や私がそれを敷設した方法と関係がありますか? または関連の深さですか?

十分な情報を提供していただければ幸いです。

ありがとうございました!

+0

実際にデータベースに列が存在することを確認しましたか? – meagar

+0

はい、列はテーブルに存在します。 –

答えて

0

移行を実行したことを再度確認することをお勧めします(rake db:migrate)。

「t.integer:event_id」の代わりに「t.references:event」を試してみることもできます。

+0

テストデータベースに問題がありました。パージしてからもう一度準備しなければなりませんでした。神様、私はそんな奴だよ...助けてくれた皆さんありがとう –

関連する問題