我创建了以下课程,但它无法正常工作。
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变为零。
我该如何解决这个问题?
答案 0 :(得分:0)
在User.rb
中,在条件上添加after_create。
应该看起来像:
after_create :create_participation, if: :department_code.present?