Я создал Observer для класса User (ниже).Я знаю, что вызывается метод before_save, и я знаю, что вводится условие new_record, однако новая запись никогда не сохраняется ... Не хватает ли чего-то фундаментального для обратного вызова before_save?
Сохранение вКонтроллер выглядит так (количество ошибок, выдаваемых путами, равно нулю):
def create
@user = User.new(params[:user])
if @user.save
#UserMailer.registration_confirmation(@user).deliver
redirect_to root_url, :notice=>"Signed Up!"
else
puts @user.errors.count
render "new"
end
end
class UserObserver < ActiveRecord::Observer
observe :user
def before_save(user)
if user.new_record?
puts 'HELLLLLLLLLLP'
#todo make a confirmation code generator
user.confirmationcode='1234'
user.confirmed=false
else
if user.email_changed?
user.confirmationcode='123'
user.confirmed=false
end
end
end
def after_save(user)
if user.confirmed=false
UserMailer.confirm_registration(user).deliver
end
end
end