0
我想设置创建它的基础上的用户一个默认值,我不知道该怎么做:如何根据current_user设置默认值?
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
有人能帮忙吗?
好的,谢谢!但tax_rate应属于一个项目,而不是发票... – Tintin81 2012-03-12 11:30:56
@ Tintin81设置为发票的访问者,因此您可以在控制器中只设置一次,您可以在项目中读取它,而不会存储在数据库中。这也可以帮助您避免网页的大量分配。 – nolith 2012-03-12 11:37:42
@ Tintin81我完全重写了一个解决方案,它从类中移除所有耦合。 – nolith 2012-03-13 08:24:12