我有 2 个模型:
class Invoice < ActiveRecord::Base
has_many :invoice_items
accepts_nested_attributes_for :invoice_items, :allow_destroy => true
end
class InvoiceItem < ActiveRecord::Base
attr_accessor :encryption_key
belongs_to :invoice
end
发票项目的列是加密的,我使用来自会话的加密密钥。我不希望将此密钥存储在服务器或任何其他模型中。
从控制器:
params[:invoice][:invoice_items_attributes].each_value {
|v| v.merge!(:encryption_key => session['access_key'])
}
@invoice = Invoice.new(params[:invoice])
这会将密钥放入属性列表中,但在创建发票时不会将其传递给 InvoiceItems 模型......
任何有关如何使其工作的指示都会很棒。