2
我有以下表和相應的模型:如何與軌道追加到一個字符串上創建ID更新場
Orders
ID|ORDER_REF|....
順序裁判的格式爲「ORDER#000-00」 + ORDER.ID問題是我需要啓用它,以便在插入時設置order ref。有沒有辦法做到這一點,而不必在插入後進行更新,我在這裏使用RoR。
我有以下表和相應的模型:如何與軌道追加到一個字符串上創建ID更新場
Orders
ID|ORDER_REF|....
順序裁判的格式爲「ORDER#000-00」 + ORDER.ID問題是我需要啓用它,以便在插入時設置order ref。有沒有辦法做到這一點,而不必在插入後進行更新,我在這裏使用RoR。
你真的需要數據庫中的數據嗎?最好的方法是在你的模型上只有一個方法,根據數據庫中的id
返回所需格式的訂單參考。
class Order < ActiveRecord::Base
def order_ref
"ORDER#000-#{self.id.to_s.rjust(3, '0')}"
end
end
有了你可以做到這一點的Abobe:
order = Order.create(params[:order])
order.id #=> 12
order.order_ref #=> "ORDER#000-012"
如果做需要在數據庫中的訂單參考,我建議使用after_create
回調:
class Order < ActiveRecord::Base
after_create :generate_order_ref
def generate_order_ref
self.order_ref = "ORDER#000-#{self.id.to_s.rjust(3, '0')}"
save
end
end
這確實插入後做了更新,但我沒有看到任何問題。
您是否使用表單來執行插入? – beck03076