2013-07-22 37 views
0

我有一个旧的项目,看起来像这样一类:在模型中使用“puts”有没有更好的选择?

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“消息” – Debadatt

+0

工作。如果有人把'Rails.logger'作为答案,我会接受它。谢谢。 –

回答

0

在拯救你可以使用: -

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

这也将使得测试绿色。

相关问题