自定义验证方法中的关联

时间:2016-05-10 03:07:44

标签: ruby-on-rails ruby-on-rails-4

我创建了以下课程,但它无法正常工作。

class User < ActiveRecord::Base
  validate :validate_department_code, on: :create
  def validate_department_code
    if self.department_code.present?
      department = Department_code.find_by_name(self.department_code)
      user.build_participation(department: department)
    else
      self.errors.add(:department_code, :not_found)
    end
  end
end

验证后,用户将保存在数据库中,但不会保存参与者。因此user.participation变为零。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

User.rb中,在条件上添加after_create。

应该看起来像:

after_create :create_participation, if: :department_code.present?