次の表と対応するモデルがあります。
Orders
ID|ORDER_REF|....
注文参照の形式は「ORDER#000-00」+ ORDER.IDです。重要なのは、挿入時に注文参照が設定されるように有効にする必要があるということです。挿入後に更新を行わずにこれを行う方法はありますか?ここではRoRを使用しています。
次の表と対応するモデルがあります。
Orders
ID|ORDER_REF|....
注文参照の形式は「ORDER#000-00」+ ORDER.IDです。重要なのは、挿入時に注文参照が設定されるように有効にする必要があるということです。挿入後に更新を行わずにこれを行う方法はありますか?ここではRoRを使用しています。
データベースにそのデータが本当に必要ですか?id
最良の方法は、データベース内のに基づいて、目的の形式で注文参照を返すメソッドをモデルに設定することです。
class Order < ActiveRecord::Base
def order_ref
"ORDER#000-#{self.id.to_s.rjust(3, '0')}"
end
end
アボベを使用すると、これを行うことができます:
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
これは挿入後に更新を行いますが、問題はありません。