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

另一个和上面一样,只有 if 改变,所以我相信你可以研究这个并适应你自己的需求。

于 2012-12-19T17:46:43.547 回答