Rails:限制用户可以声明的任务数量

时间:2012-12-19 17:39:18

标签: ruby-on-rails validation

我正在编写一个简单的项目管理应用程序作为Rails中的学习练习。

我有一个task模型和一个user模型。 task模型有一个user字段,表示哪个用户声明了给定的任务。

我想在模型级别执行一些操作但不确定如何:

  1. 每位用户最多可以申请五项任务,而不再需要。
  2. 每个用户只能为自己声明任务(即,user字段可以设置为当前活动用户,而不是任何其他用户)。换句话说,您无法分配任务 - 用户只能声明它们。
  3. 尝试将这些作为验证强制执行是正确的吗?你能指出我需要的验证方向吗?我应该自己写吗?

    谢谢。

1 个答案:

答案 0 :(得分: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

另一个就像上面一样,只有改变了,所以我相信你可以调查一下并适应你自己的需要。