Ruby on rails Rails-基于另一个模型验证属性
我有一个分配类,它同时属于用户类和角色类。它存储三个值—对它所属用户的引用、对它所属角色的引用以及指示创建分配实例的用户的名称的字符串值Ruby on rails Rails-基于另一个模型验证属性,ruby-on-rails,ruby-on-rails-3,validation,Ruby On Rails,Ruby On Rails 3,Validation,我有一个分配类,它同时属于用户类和角色类。它存储三个值—对它所属用户的引用、对它所属角色的引用以及指示创建分配实例的用户的名称的字符串值 class Assignment < ActiveRecord::Base include ActiveModel::Validations belongs_to :user belongs_to :role attr_accessible :user, :role, :assigned_by_user ... 类分配
class Assignment < ActiveRecord::Base
include ActiveModel::Validations
belongs_to :user
belongs_to :role
attr_accessible :user, :role, :assigned_by_user
...
类分配
在我的模型验证中,我想执行一项检查,以确保分配给用户的用户属性与有效用户的名称匹配。但是,我似乎无法访问分配模型中的User.find(…)方法
如何实现此功能?将“检查用户”模块添加到lib文件夹(Check_User.rb)。然后在那个文件里
module CheckUser
def search_user
user = User.find_by_name(self.assigned_by_user)
unless item.nil?
errors.add(:name_found, "This username has already been taken")
end
end
然后在你的作业模型中
class Assignment < ActiveRecord::Base
include CheckUser
validate :search_user
类分配
当然可以!你得到的错误是什么?哦,太棒了,这比我昨晚提出的黑客解决方案好得多。另外,你也可以在你的模型中添加一个类似的方法并在那里调用它,而不是将它放到一个完全不同的文件中。