Rails最佳实践 - 参数或多态模型?

时间:2013-07-15 09:17:03

标签: ruby-on-rails model

我有两个模型:OwnershipLoan

为了验证交易,我在两个模型上使用布尔值:currentagreedavailable。但这可能是多余的。所以我问自己是否应该创建另一个模型,让我们称之为status,使用这三个布尔值,并添加与所有权和贷款的多态关联。

你怎么看?我应该从两个模型中删除布尔值并创建一个包含每个布尔值的多态模型吗?或者我应该按照我的方式保留它?

1 个答案:

答案 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

然后在OwnershipLoan模型中,我会添加一个status_id字段,其中包含Status.id。您可以将这些状态常量作为Status::CURRENT等访问。