Ruby on rails 如何将Rails与PostgreSQL结合使用,通过自定义规则设置自定义序列号
我想设置自动生成序列号的规则。 我使用PostgreSQL。 有两张桌子;存储和存储记录。 Store=[id,code],Storerecord=[id,Store\u code,no] 今天,我有商店,代码是“A01”。 我想将规则设置为A01+日期+N或A01+随机数 如果我需要这种格式,我应该如何归档这个目标?Ruby on rails 如何将Rails与PostgreSQL结合使用,通过自定义规则设置自定义序列号,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我想设置自动生成序列号的规则。 我使用PostgreSQL。 有两张桌子;存储和存储记录。 Store=[id,code],Storerecord=[id,Store\u code,no] 今天,我有商店,代码是“A01”。 我想将规则设置为A01+日期+N或A01+随机数 如果我需要这种格式,我应该如何归档这个目标? 谢谢你 您应该在提交回调到您的模型后添加(除非您有特定的理由让序列号生成代码驻留在数据库本身中) 因此,您可以在应用程序/模型/商店中执行类似操作。rb: class Store
谢谢你 您应该在提交回调到您的模型后添加
(除非您有特定的理由让序列号生成代码驻留在数据库本身中)
因此,您可以在应用程序/模型/商店中执行类似操作。rb:
class Store < ActiveRecord::Base
# Using after_commit, because we want to use ID of the record,
# and it will be there only after record is saved to DB already
after_commit :set_serial_number
# other stuff you have in your model
private
def set_serial_number
self.update_column(serial_number, self.id.to_s + self.code.to_s)
end
end
类存储
您的第二款车型也有类似的情况:
class Storerecord < ActiveRecord::Base
belongs_to :store
after_commit :set_serial_number
# other stuff you have in your model
private
def set_serial_number
self.update_column(serial_number, self.store.id.to_s + self.no.to_s)
end
end
class Storerecord
谢谢您的回答!!!!:)但是,如果我想将数字存储在Storerecord=[no]中,如何捕获store_代码并设置数字?这和你的回答类似吗?@IanCheng欢迎你!:)为您的Storerecord更新了以上我的答案。