2012-01-23 88 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告訴我?它看起來好像從rails c中,存在forgot_password值。我錯過了什麼?

THX

+0

確保您運行了rake db:test:prepare如果您在遷移中添加了字段。 –

+0

很確定這是它。謝謝 – timpone

回答

10

只是爲了未來的搜索:

當你看到一個無方法錯誤的東西,如「爲AttributeName =」 - 但你知道主動記錄並稱attr_accessor到模型,你應確保您已運行:

rake db:test:prepare 

遷移後。不能說這讓我有多少次了!

相關問題