1

と の 2 つのモデルがOwnershipありLoanます。

トランザクションを検証するために、両方のモデルでブール値を使用します: current, agreed, available. しかし、それは冗長かもしれません。そこで、この 3 つのブール値を使用して別のモデルを作成する必要があるかどうかを自問していますstatus。この 3 つのブール値を使用して と呼び、Ownership と Loan にポリモーフィックな関連付けを追加します。

あなたはそれについてどう思いますか ?両方のモデルからブール値を削除し、各ブール値を含む多態性モデルを作成する必要がありますか? それとも、自分のやり方を維持する必要がありますか?

4

1 に答える 1

1

ここで関連付けは必要ないと思いますが、polymorphicこれらのフィールドを別のモデルに移動することは良い考えのように思えます。説明から、これは単純なルックアップ テーブルになる可能性があるためです。

モデルを作成し、Statusこれら 3 つの属性を次のように定義します。

# 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_idStatus.idStatus::CURRENT

于 2013-07-15T09:32:20.663 に答える