如何根据current_user设置默认值?

时间:2012-03-12 08:09:20

标签: ruby ruby-on-rails-3

我想基于创建它的用户设置默认值,我想知道如何做到这一点:

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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以将属性传递给build方法,这样您就可以删除after_initialize编辑控制器:

def create
  @invoice = Invoice.new(params[:invoice])
  3.times { @invoice.items.build( :tax_rate => current_user.tax_rate }
  ...
end