将 product 中的 price 复制到 line_item 中,我是这样写的。
class AddPriceToLineItem < ActiveRecord::Migration
def change
add_column :line_items, :price, :decimal
LineItem.all.each do |li|
li.price = li.product.price
end
end
end
但是实际中发现 li.price 是得到了值的
p li.price #<BigDecimal:99ca80c,'0.4375E2',18(45)>
但是 line_items 表中却没有数据
p LineItem.all
[#<LineItem id: 4, product_id: 2, cart_id: 3, created_at: "2012-09-15 17:48:50", updated_at: "2012-09-15 17:48:50", quantity: 1, price: nil>, #<LineItem id: 5, product_id: 3, cart_id: 3, created_at: "2012-09-15 17:48:55", updated_at: "2012-09-15 17:48:55", quantity: 1, price: nil>]
请问是何原因,如果想通过 migrate 复制表中的数据正确应该如何写?