我validate :my_validate
在我的用户模型中有,但my_validate
如果“has_may :through”属性被更改,则永远不会被调用。是正确的行为吗?
我的代码:
class User < ActiveRecord::Base
has_many :roles, :through => :user_roles
validate :my_validate
def my_validate
raise 123
end
这会引发异常:
User.find(1).name = 'new_name'
这有效:
User.find(1).roles = []
我知道用户表没有更新,所以 rails 认为验证是不必要的,但它看起来真的很奇怪。