Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-基于另一个模型验证属性_Ruby On Rails_Ruby On Rails 3_Validation - Fatal编程技术网

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
类分配
当然可以!你得到的错误是什么?哦,太棒了,这比我昨晚提出的黑客解决方案好得多。另外,你也可以在你的模型中添加一个类似的方法并在那里调用它,而不是将它放到一个完全不同的文件中。