Ruby on rails rails 4复杂模型验证

Ruby on rails rails 4复杂模型验证,ruby-on-rails,validation,getter-setter,Ruby On Rails,Validation,Getter Setter,我有一个rails应用程序。分配者(当前用户)必须将任务分配给执行者(其他用户)。我正在使用getter setter方法进行jquery自动完成和验证,这样我就可以确保任务分配给的用户是否存在。我使用的rescue设置为nil,因此,如果字段为空或用户不存在,则可以验证是否存在。我想对此进行更改,这样用户可以将字段留空,也可以从现有用户中进行选择。当我验证executor对象时,我不确定如何才能做到这一点 task.rb class Task < ActiveRecord::Base

我有一个rails应用程序。分配者(当前用户)必须将任务分配给执行者(其他用户)。我正在使用getter setter方法进行jquery自动完成和验证,这样我就可以确保任务分配给的用户是否存在。我使用的rescue设置为nil,因此,如果字段为空或用户不存在,则可以验证是否存在。我想对此进行更改,这样用户可以将字段留空,也可以从现有用户中进行选择。当我验证executor对象时,我不确定如何才能做到这一点

task.rb

class Task < ActiveRecord::Base
  belongs_to :assigner, class_name: "User"
  belongs_to :executor, class_name: "User"

  validates :assigner, presence: true
  validates :executor, presence: { message: "must be valid"}

  def task_name_company
    [executor.try(:profile).try(:first_name),      executor.try(:profile).try(:last_name), executor.try(:profile).try(:company)].join(' ')
  end

  def task_name_company=(name)
    self.executor = User.joins(:profile).where("CONCAT_WS(' ', first_name, last_name, company) LIKE ?", "%#{name}%").first if name.present?
  rescue ArgumentError
    self.executor = nil
  end
类任务