2012-02-26 19 views
2

こんにちは私がやっていたwikiアプリケーション用のテーブルを作成しました。私は質問表と回答表を持っていたのはかなり簡単でした。私は今それにユーザーを追加したい。だから、私はユーザーテーブルを作成し、サインアップの準備が整いました。 wikiパーツが動作していて、ユーザーパーツは動作していますが、それらを一緒にマージするのに問題があります。次のようにSQLiteで既に作成したテーブルにインデックスを追加しますか?

私が最初の足場として質問を作成しました:

rails g scaffold Question title:string body:string 

次のように続いて回答:

rails g scaffold Answer question_id:integer content:string 

私は、ユーザーテーブルを作成した後use​​rs_id列を追加しようとしました:

rails generate migration add_users_id_to_questions user_id:integer 

次に、miに次の行を追加してuser_id列のインデックスを作成しようとしました。ファイルを移動する:

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

rake:dbは移行しますが、移行を実行した後に変更が反映されません。移行ファイルに列を追加する以外の方法でuser_idのインデックスを作成することはできますか?私はrake db:rollbackを実行してuser_idカラムを追加したが、変更を加えてrake db:migrateを実行するとエラーが出るuser_id does not exist。インデックスの作成方法を教えていただければ幸いです。私はRails 3、SQLiteを自分のDBとして走っています。 ありがとうございます。

+0

xhangeメソッドでadd_indexを呼び出してみましたか? – Fivell

答えて

5

changeブロック内でadd_indexを使用して移行をロールバックして再実行します。

class AddUserIdToQuestions < ActiveRecord::Migration 
    def change 
    add_column :questions, :user_id, :integer 
    add_index :questions, :user_id 
    end 
end 
関連する問題