這是Michael Hartle書中的工作代碼。這是在app/mailers/user_mailer.rb
郵寄者代碼來創建激活郵件用戶帳戶:定義爲實例方法的類方法
class UserMailer < ActionMailer::Base
def account_activation(user)
@user = user
mail to: user.email, subject: "Account activation"
end
end
使用紅寶石文件中生成的郵件在預覽中test/mailers/previews/user_mailer_preview.rb
:
class UserMailerPreview < ActionMailer::Preview
def account_activation
user = User.first
user.activation_token = User.new_token
UserMailer.account_activation(user)
end
end
的account_activation
方法被定義作爲user_mailer.rb
中的實例方法。但它在預覽生成器中用作類方法。我誤解了代碼還是有其他事情在這裏發生?
給任何有同樣疑問的人
這就是ActionMailer的工作原理。電子郵件在擴展ActionMailer::Base
的類中定義爲實例方法,但可以按類方法訪問它們。
無法複製。 – sawa