我想基于创建它的用户设置默认值,我想知道如何做到这一点:
class Item < ActiveRecord::Base
belongs_to :invoice
after_initialize :default_values
...
private
def default_values
self.tax_rate = current_user.tax_rate || 0
end
end
问题是我不能在模型中使用current_user。
这就是我在我的控制器中所拥有的:
def create
@invoice = Invoice.new(params[:invoice])
3.times { @invoice.items.build }
...
end
有人可以帮忙吗?
答案 0 :(得分:0)
您可以将属性传递给build
方法,这样您就可以删除after_initialize
编辑控制器:
def create
@invoice = Invoice.new(params[:invoice])
3.times { @invoice.items.build( :tax_rate => current_user.tax_rate }
...
end