タスクを管理する Rails 3.2 アプリがあります。ここでは、タスクがユーザーに割り当てられています。タスク モデルには、ブール値である複数のユーザー変数があります。少なくとも 1 人のユーザーが 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だけでなく、すべてのユーザーに与えるにはどうすればよいですか?