您好我为我正在做的wiki应用程序创建了一个表。一开始我很简单,我有一个Questions表和一个Answers表。我现在想要添加用户。所以为此我创建了一个用户表,整个注册事情就准备好了。维基部分正在运行,用户部分正在运行,但我无法将它们合并在一起。
我首先创建了一个问题作为脚手架,如下所示:
rails g scaffold Question title:string body:string
然后回答如下:
rails g scaffold Answer question_id:integer content:string
然后我尝试在创建Users表后添加users_id列:
rails generate migration add_users_id_to_questions user_id:integer
然后我尝试通过在迁移文件中添加以下行来索引user_id列:
class AddUserIdToQuestions < ActiveRecord::Migration
def change
add_column :questions, :user_id, :integer
end
add_index :questions, :user_id
end
我做rake:db migrate但是在我运行迁移后它没有显示更改。有没有其他方法可以索引user_id,而不是通过向迁移文件添加列。我甚至运行了rake db:rollback,因此添加了user_id列,但是当我进行更改并运行rake db:migrate时,它给出了一个错误user_id不存在。如果您可以帮助我如何创建索引,将不胜感激。我运行Rails 3,SQLite作为我的数据库。 谢谢。
答案 0 :(得分:5)
回滚,然后在add_index
块内使用change
重新运行迁移。
class AddUserIdToQuestions < ActiveRecord::Migration
def change
add_column :questions, :user_id, :integer
add_index :questions, :user_id
end
end