我有一个管理任务的 Rails 3.2 应用程序。在这里,任务被分配给用户。任务模型有多个布尔用户变量。我将如何添加验证以说明至少一个用户设置为 true?
原来的:
class Task < ActiveRecord::Base
attr_accessible :title, :user1, :user2, :user3, :user4:
validates :title, :presence => true
validates :is_assigned
def is_assigned
if #AT_LEAST_ONE_USER_IS_TRUE
errors.add("The task must be assigned to at least one user.")
end
end
end
编辑:
class Task < ActiveRecord::Base
attr_accessible :title, :user1, :user2, user3, :user4
validates :title, :presence => true
validate :is_assigned
def is_assigned
unless @user1 || @user2 || @user3 || @user4
errors.add(:user1, "The task must be assigned to at least one user.")
end
end
end
我想我越来越近了,但这不起作用。错误似乎总是出现。
而且看起来 errors.add 需要另一个变量。我如何给它所有用户而不仅仅是 user1?