2013-08-29 22 views
9

私は次のコードで私のポストのテーブルへのユーザーの参照を追加しようとしています:未定義のメソッド「add_reference」

class AddUserIdToPosts < ActiveRecord::Migration 
    def change 
    add_reference :posts, :user, index: true 
    end 
end 

をしかし、私はエラーメッセージを受信しました:

undefined method 'add_reference' 

誰もが知っていますこれを解決するには?

私はあなたがそれをあなたが投稿の方法を行うことができますので、

class AddUserIdToPosts < ActiveRecord::Migration 
    def change 
    add_column :posts, :user_id, :integer 
    add_index :posts, :user_id 
    end 
end 

のみのRails 4のようにあなたがそれを行う必要があります3 RailsではRailsの3.2.13

+0

すべきですか? http://stackoverflow.com/questions/4954969/rails-3-migrations-adding-reference-column – dax

答えて

16

を使用しています。

+0

ありがとうルイス、私はこのメソッドがRails 4でのみ有効であることを知らなかった –

1

のRails 4.0

でこのメソッドapperead私はあなたがどのようにこの程度のRails 3.2

2

ため、この機能をいくつかのモンキーパッチを作成するかもしれないと思う:add_referenceは4.0レールに固有である

def change 
    change_table :posts do |p| 
    p.references :user, index: true 
    end 
end 
3

。 0のため、これを試してみてください:

class AddUserIdToPosts < ActiveRecord::Migration 
    def change 
    add_column :posts, :user_id, :integer 
    add_index :posts, :user_id 
    end 
end 

これはグレーですこのテーマについてのトンpost

3

あなたの移行は、これが役立つかもしれない

rails generate migration AddUserRefToPosts user:references 
+0

これは私の答えの事実上コピーです。 :) –

+0

@MarekLipka申し訳ありませんあなたの投稿は私がそれを削除させて見たことがありません –

+0

@MarekLipka chnage done not copy now –

関連する問題