0

ユーザーが「アクション」のリストを持つRails 3を使用してWebソリューションを実装しています。それらは保留中または検証済みのいずれかであり、管理者のみが検証できます。

2 つの典型的なアクションは次のとおりです。

1/ 間違った写真を報告する (管理者が確認した場合、写真は削除されるため ID が必要です) 2/ 新しいカテゴリを送信する (管理者が確認した場合、カテゴリが追加されます)

各アクションには、ユーザーの評判に向かう特定の数のポイントがあり、これが継承の良い候補になります (検証の最後に共有される動作、子の特定のフィールドとメソッドの実装)。

写真を削除する (1/) か、新しいカテゴリを追加する (2/) モデルに「onValidate」メソッドを含めることを計画していましたが、それをモデルに入れるのは奇妙に感じます。

そのデザインを強化してコントローラーに移動する方法を教えてください。

4

1 に答える 1

0

あなたが正しく説明していることを理解していれば、モデルにこのコードを含めることがなぜ悪いことだと思うのか理解できません。私はそれをあなたのユーザーhas_manyアクションと見なし、アクションにはスコアがあります。アクションが検証されると、他のオブジェクトの状態が変化します(画像が削除され、カテゴリが追加されます')

class DeletePictureAction < Action
  belongs_to :user
  belongs_to :picture

  def on_validate
     do_subclass_specific_stuff_to(picture)
     add_to_user_score(score)
  end
end

ここではルーティングとは何の関係もないように思われるので、コントローラーには場所がありません...

于 2011-06-28T10:29:35.490 に答える