2012-01-23 2 views
3

私は統合テストのrailscastsに従い、パスワードリセットURLをテストしています。私はNoMethodErrorに問題があり、何が起こっているのか分かりません。モデルのrspecと未定義メソッド

私は、電子メールで送信されるハッシュだけのforgot_password値を持つユーザーモデルを持っています。

これは

ruby-1.9.2-p290 :001 > u=User.find(1) 
... 
ruby-1.9.2-p290 :002 > u.forgot_password 
=> "1280aceaf23f185a2d09a57b5534e7e3" 

を動作しているようだが、私は次のエラーを取得する:

1) PasswordResets emails user when requesting password reset 
    Failure/Error: click_button "jt" 
    NoMethodError: 
    undefined method `forgot_password=' for #<User:0x007ff916b03da0> 
    # /Users/jt/rails-1/app/controllers/users_controller.rb:61:in `forgot_password_confirmation' 
    # (eval):2:in `click_button' 

、ここでは、仕様です:

'spec_helper'

describe "PasswordResets" do 
    it "emails user when requesting password reset" do 
    user=Factory(:user) 
    visit log_in_path 
    click_link "password" 
    fill_in "email", :with => user.email 
    click_button "jt" 
    end 
end 
が必要です

NoMethodErrorが教えてくれますか?あたかもレールcから、forgot_password値が存在するかのように見えます。私は何が欠けていますか?

THXただ、将来サーチャーのための

+0

移行にフィールドを追加した場合は、rake db:test:prepareを実行していることを確認してください。 –

+0

それは確かにそれだった。どうも – timpone

答えて

10

あなたが「attributeNameの=」のようなもので無方式のエラーを参照してください - しかし、あなたは、アクティブ・レコードが追加されて知っているモデルにattr_accessor、あなた

rake db:test:prepare 

移行後は、次を実行してください。これが何度も私に与えられたことを言うことができません!

関連する問題