我有一个模型Entity
,可以有offers
和invoices
。用户可以创建自定义数字格式来显示发票号码。例如,内部发票号码23
可以变成2025INV00000023
或类似的。现在,对于offers
,我们需要能够使用不同的数字格式。23
可能会变成2025OFF00000023
。
我通过创建一个类来实现这一点NumberFormat
,用户可以通过多种方式配置数字格式。数字格式与实体相关联,因为出于税务/会计目的,实体的所有发票都需要具有统一/一致的编号。
我的Entity
模型开始如下:
class Entity < ApplicationRecord
has_many :invoices, dependent: :restrict_with_error
has_many :offers, dependent: :restrict_with_error
还有一些不相关的has_many
belongs_to :invoice_number_format, class_name: 'NumberFormat'
belongs_to :offer_number_format, class_name: 'NumberFormat'
现在我的NumberFormat
类需要有belongs_to
关系的另一端。但我不确定加倍是否是正确的方法,以防止dependent: :restrict_with_error
用户删除仍在使用的数字格式。VSCode 的自动格式化程序只会在保存时删除第二个。我当然可以保存而不进行格式化(并且在编辑此文件时要非常小心,不要忘记),经过初步测试后,它似乎有效,但我想知道我的方法是否不理想?
has_many :entities, inverse_of: :invoice_number_format,
dependent: :restrict_with_error
# This line gets deleted on save
has_many :entities, inverse_of: :offer_number_format,
dependent: :restrict_with_error