2012-02-26 85 views
2

嗨我創建了一個我正在做的wiki應用程序的表。這是非常簡單的,我有一個問題表和答案表。我現在想要添加用戶。所以爲此我創建了一個用戶表,整個註冊事情已經準備就緒。 wiki部分正在工作,用戶部分正在工作,但我無法將它們合併在一起。將索引添加到已在SQLite中創建的表中?

我首先創建一個問題作爲支架如下:

rails g scaffold Question title:string body:string 

然後回答如下:

rails g scaffold Answer question_id:integer content:string 

然後我嘗試創建用戶表後添加users_id列:

rails generate migration add_users_id_to_questions user_id:integer 

然後我嘗試通過在mi中添加以下行來索引user_id列gode文件:

class AddUserIdToQuestions < ActiveRecord::Migration 
     def change 
     add_column :questions, :user_id, :integer 
     end 
     add_index :questions, :user_id 
    end 

我做耙:db遷移,但它沒有顯示我運行遷移後的變化。除了通過向遷移文件添加列以外,是否還有其他方式可以索引user_id。我什至跑rake db:rollback,所以添加user_id列不見了,但是當我進行更改並運行rake db時:遷移它給了我一個錯誤user_id不存在。如果你能幫助我如何創建索引,將不勝感激。我運行Rails 3,SQLite作爲我的數據庫。 謝謝。

+0

您是否嘗試在xhange方法中調用add_index? – Fivell 2012-02-26 22:50:23

回答

5

回滾,然後在change塊內重新運行add_index的遷移。

class AddUserIdToQuestions < ActiveRecord::Migration 
    def change 
    add_column :questions, :user_id, :integer 
    add_index :questions, :user_id 
    end 
end