Quando si invia la posta in Rails, di solito si potrebbe fare qualcosa di simile:Come puoi chiamare i metodi di classe sui mailer quando non sono definiti come tali?
UserMailer.password_reset(user).deliver
Ma se guardiamo dentro UserMailer
Possiamo vedere questo:
def password_reset(user) # not self.password_reset
# ...
end
Si noti che il nome del metodo non è preceduto da self
. Guardandolo, sembra che tu abbia bisogno di istanziare l'oggetto prima come di seguito. Come fa Rails a fare questo?
UserMailer.new.password_reset(user).deliver
Grazie. Ma perché non renderlo un metodo di classe? Cosa otteniamo da questo approccio? – dee
Non sono sicuro se capisco del tutto. Intendi perché non renderlo un metodo di istanza? Quindi, come UserMailer.new.password_reset (utente) .deliver? – Rebitzele
Intendo perché manca il metodo di utilizzo? Tienilo 'UserMailer.password_reset (user) .deliver' ma cambia' def method' in 'def self.method' – dee