2

Rails の学習課題として、単純なプロジェクト管理アプリを作成しています。

私はtaskモデルとモデルを持っていuserます。taskモデルには、特定のuserタスクを要求したユーザーを示すフィールドがあります。

モデル レベルで強制したいことがいくつかありますが、方法がわかりません。

  1. 各ユーザーは最大 5 つのタスクを要求できますが、それ以上は要求できません。
  2. 各ユーザーは自分のタスクのみを要求userできます (つまり、フィールドは現在アクティブなユーザーに設定でき、他のユーザーには設定できません)。つまり、タスクを割り当てることはできません。ユーザーはタスクを要求することしかできません。

これらを検証として強制しようとするのは正しいことですか? 必要な検証の方向を教えていただけますか? 自分で書くべきですか?

ありがとうございました。

4

1 に答える 1

3

独自の検証を追加する必要があります。あなたが探しているもののデフォルトはありません。サンプルコードは次のとおりです。

validate :has_only_five_tasks

def has_only_five_tasks
  if User.find(self.user_id).tasks.count >= 5
    errors.add(:user_id, "User may only have 5 tasks assigned.")
  end
end

もう1つは上記のようなもので、ifのみが変わるので、これを調べて自分のニーズに適応できると思います。

于 2012-12-19T17:46:43.547 に答える