2013-07-22 4 views
0

У меня есть класс в наследство проект, который выглядит следующим образом:Есть ли лучшая альтернатива этому использованию «ставит» в модели?

class UserObserver < ActiveRecord::Observer 
    def after_create(user) 
    unless Rails.env == "development" # don't spam users when running legacy migrations 
     begin 
     UserMailer.welcome(user).deliver 
     subscribe_user_to_new_account_mailinglist user 
     rescue 
     # THE FOLLOWING LINE IS THE ONE THAT BOTHERS ME 
     puts "User##{user.id} - Signed up using an invalid email address." 
     end 
    end 
    end 
end 

Как вы можете видеть, есть то, что puts там. Когда я запускаю наш тестовый пакет, я получаю такой вывод:

be rspec spec/models/user_spec.rb 
User#1 - Signed up using an invalid email address. 
...User#1 - Signed up using an invalid email address. 
..User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
.User#1 - Signed up using an invalid email address. 
. 

Finished in 12.19 seconds 
18 examples, 0 failures 

Я не большой поклонник дополнительных помех. Похоже, я должен видеть только зеленые точки.

Что было бы лучше сделать на этой линии вместо puts?

+3

Как насчет 'Rails.logger.info 'вашего сообщения'? –

+1

Rails.logger.debug "message" – Debadatt

+0

Это сработало. Если кто-то поставит «Rails.logger» в качестве ответа, я приму это. Благодарю. –

ответ

0

В помощь вы можете использовать: -

flash[:error] = error.message "User##{user.id} - Signed up using an invalid email address." 

это будет также сделать тест зеленый.