これは二重質問ではありませんrake db:test:prepare
。
追加に関する Hartl の Rails チュートリアルremember_token
。
authentication_pages_spec.rb を実行するとエラーが発生します:
1) User
Failure/Error: it { should respond_to(:remember_token) }
expected #<User id: nil, name: "Example User", email: "user@example.com", created_at: nil, updated_at: nil, password_digest: "$2a$04$eszlV1FYN2HahpYn1X/NyOTWYbzKjfLZCv7Vc2I0Wb3p..."> to respond to :remember_token
# ./spec/models/user_spec.rb:18:in `block (2 levels) in <top (required)>'
私の間違い:
TIMESTAMP_add_remember_token_to_users.rb を生成し、次のコードを追加しました。
class AddRememberTokenToUsers < ActiveRecord::Migration
def change
add_column :user, :remember_token, :string
add_index :user, :remember_token
end
end
私は走っrake db:migrate
たrake db:test:prepare
。上記のコードは両方の行にある:user
はずであると判断しました。:users
コードは次のようになります。
class AddRememberTokenToUsers < ActiveRecord::Migration
def change
add_column :users, :remember_token, :string
add_index :users, :remember_token
end
end
テストはまだ失敗しています。これらの編集を行った後、実行rake db:migrate
しましたがrake db:test:prepare
、役に立ちませんでした。
を使用してデータベースをロールバックしようとしましrake db:rollback
たが、次のエラーが発生します。
Index name 'index_users_on_remember_token' on table 'users' does not exist
これは、私が発見した問題を強調していると思います。
私がする必要があるのは、このデータベースファイルをロールバックまたは削除し、やり直しremember_token
てusers
テーブルに入れることだと思います。
どんな助けでも大歓迎です。