私は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 モデルに渡されません...
これを機能させる方法についての指針は素晴らしいでしょう。