我正在尝试使用以下代码为我的帖子表添加用户引用:
class AddUserIdToPosts < ActiveRecord::Migration
def change
add_reference :posts, :user, index: true
end
end
但我收到了一条错误消息:
undefined method 'add_reference'
任何人都知道如何解决这个问题?
我正在使用Rails 3.2.13
答案 0 :(得分:16)
在Rails 3中你必须这样做
class AddUserIdToPosts < ActiveRecord::Migration
def change
add_column :posts, :user_id, :integer
add_index :posts, :user_id
end
end
只有在Rails 4中,您才能按照发布的方式进行操作。
答案 1 :(得分:3)
add_reference特定于rails 4.0.0,所以你应该尝试这样做:
class AddUserIdToPosts < ActiveRecord::Migration
def change
add_column :posts, :user_id, :integer
add_index :posts, :user_id
end
end
关于这个主题,这是一个很棒的post
答案 2 :(得分:3)
您的迁移应该是
rails generate migration AddUserRefToPosts user:references
答案 3 :(得分:2)
这个怎么样:
def change
change_table :posts do |p|
p.references :user, index: true
end
end
答案 4 :(得分:1)
此方法显示在Rails 4.0
中我认为你可以为Rails 3.2创建一些具有此功能的猴子补丁