Ниже приведен краткий отрывок из руководства по ActionMailer
class UserMailer < ActionMailer::Base
default :from => "[email protected]"
def welcome_email(user)
@user = user
@url = "http://example.com/login"
mail(:to => user.email,
:subject => "Welcome to My Awesome Site")
end
end
И в контроллере
class UsersController < ApplicationController
# POST /users
# POST /users.xml
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
# Tell the UserMailer to send a welcome Email after save
UserMailer.welcome_email(@user).deliver
format.html { redirect_to(@user, :notice => 'User was successfully created.') }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
end
Итак, почему Rails пытается запутать rubyist с помощью методов экземпляра в качестве методов класса? Я предполагаю, что они переопределили отсутствующий метод, но это просто путает! Или я здесь что-то не хватает?
т.е. почему бы не определить welcome_email как def self.welcome_email (пользователь)