我有两个模型:Ownership
和Loan
。
为了验证交易,我在两个模型上使用布尔值:current
,agreed
,available
。但这可能是多余的。所以我问自己是否应该创建另一个模型,让我们称之为status
,使用这三个布尔值,并添加与所有权和贷款的多态关联。
你怎么看?我应该从两个模型中删除布尔值并创建一个包含每个布尔值的多态模型吗?或者我应该按照我的方式保留它?
答案 0 :(得分:1)
我认为您不需要polymorphic
关联,但将这些字段移动到单独的模型听起来是个好主意,因为从您的描述中可以看出这可能是一个简单的查找表。
我会创建一个Status
模型并定义这三个属性:
# Schema Information
# id :integer not null, primary key
# status :string(8) not null
#
class Status < ActiveRecord::Base
CURRENT = find_by_status('current')
AGREED = find_by_status('agreed')
AVAILABLE = find_by_status('available')
end
然后在Ownership
和Loan
模型中,我会添加一个status_id
字段,其中包含Status.id
。您可以将这些状态常量作为Status::CURRENT
等访问。