0

世界で何が起こっているのですか?? 私のテストはパスしません。私はこのチュートリアル全体を通して (今回は) 細心の注意を払ってきました。remember_token エラーが表示される理由を教えてください。

ここに私のエラーがあります: 失敗:

  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$HUTzfhPB9eOgNaBIwQZn/.BpGt4h/v9wgLlo.UoMoh8Q..."> to respond to :remember_token
     # ./spec/models/user_spec.rb:28:in `block (2 levels) in <top (required)>'

Finished in 0.19682 seconds
22 examples, 1 failure

Failed examples:

rspec ./spec/models/user_spec.rb:28 # User 

ここに私のコードがあります:

デシベル/移行/[タイムスタンプ]_add_remember_token_to_users.rb

class AddRememberTokenToUsers < ActiveRecord::Migration
  def change
    add_column :users, :remember_token, :string
    add_index  :users, :remember_token
  end
end

spec/models/user_spec.rb には「spec_helper」が必要です

describe User do

  before do
    @user = User.new(name: "Example User", email: "user@example.com", 
                     password: "foobar", password_confirmation: "foobar")
  end

  subject { @user }

  it { should respond_to(:name) }
  it { should respond_to(:email) }
  it { should respond_to(:password_digest) }
  it { should respond_to(:password) }
  it { should respond_to(:password_confirmation) }
  it { should respond_to(:remember_token) }
  it { should respond_to(:authenticate) }

  it { should be_valid }
  it { should respond_to(:authenticate) }
.
.
.  
4

3 に答える 3

0

非常によく似た問題に遭遇したので、ここで取り上げました。

要約すると、データベースで何か問題が発生したため、テーブルを削除してから and を再実行しましrake db:migraterake db:test:prepare

テーブルを削除するには:

  • SQLite データベース ブラウザを開きます (Hartl が本書の前半で推奨するデータベース ブラウザ)。
  • SQLite データベース ブラウザーから、sample_app/db/development.sqlite を開きます。
  • 削除 (SQLite データベース ブラウザから)、schema_migrations テーブルを削除します。
  • ターミナルから行った schema.rb も削除する必要がありました。

これらの手順を試して実行しrake db:migrateましたが、別のエラーが発生しました。次に、(SQLite DB Browser で) テーブル全体を削除し、users再実行rake db:migrateしてすべてを渡しました。

これを行う前にバックアップしてください。

于 2013-03-30T14:26:36.277 に答える
0

私の推測では、実行する必要があります rake db:test:prepare。幸運を!

于 2013-03-12T01:18:31.497 に答える