将哈希传递给ActiveRecord#save

时间:2016-11-14 15:31:24

标签: ruby-on-rails

我在after_save课程上有一个Scorecard回调。

在此回调中,我使用不同的模型BalanceLedger创建并保存对象。

我需要将消息传递给after_save Scorecard

中创建的此对象

这可能吗?

e.g。 (这不是有效的,但试图说明我的观点)

scorecard.total = new_total
scorecard.save(message: 'This is an Admin correction')

class Scorecard < ActiveRecord::Base

  after_save do
    BalanceLedger.create!(total: total, message: params[:message])
  end

1 个答案:

答案 0 :(得分:1)

也许使用:attr_accessor来设置虚拟属性?您可以设置message值,并从回调中检索它。

scorecard.total = new_total
scorecard.message = 'This is an Admin correction'
scorecard.save

class Scorecard < ActiveRecord::Base    
  attr_accessor :message 

  after_save do
    BalanceLedger.create!(total: total, message: message)
  end
end