2016-04-20 101 views
0

我正在通過rails教程,並在第10章中設置郵件程序。現在我正在使用account_activation電子郵件。爲了確保我以正確的方式進行設置,我甚至根據sample repo對代碼進行了兩次檢查,並且我正在設置它,就像他一樣。Rails :: MailersController#預覽錯誤的參數數量(0代表1)

完整的錯誤是:ArgumentError in Rails::MailersController#preview wrong number of arguments (0 for 1),並指向代碼在我user_mailer#account_activation方法

def account_activation(user) #here 
    @user = user 
    mail to: user.email, subject: "Account activation" 
end 

測試代碼,這是對檢查是這個

class UserMailerPreview < ActionMailer::Preview 
    # Preview this email at http://localhost:3000/rails/mailers/user_mailer/account_activation 
    def account_activation 
    user = User.first 
    user.activation_token = User.new_token 
    UserMailer.account_activation(user) #setting up the method call here 
    end 
end 

我不知道這是爲什麼因爲我通過UserMailer.account_activation(user)傳遞了正確數量的參數。我唯一的猜測可能是它可能在看UserMailerPreview#account_activation(不帶參數)的方法,並試圖在UserMailer#account_activation鏡像方法,該方法沒有參數。

有沒有人看到我在做什麼錯了?任何幫助都將不勝感激。

回答

0

如果你調用類的方法,而不是實例方法,那麼它應該是

def self.account_activation(user) 
    @user = user 
    mail to: user.email, subject: "Account activation" 
end 

然後

UserMailer.account_activation(user) 
+0

的幫助表示感謝。我切換並使他們類方法,並仍然沒有工作:( –

相關問題