在Rails用户模型中调用User.all仅返回当前用户

时间:2015-04-28 09:10:09

标签: ruby-on-rails devise

我正在尝试调试Rails项目中的问题,其中User模型中出现了问题。

一些binding.pry动作让我意识到当我从用户模型中调用User.all时,ActiveRecord正在生成以下SQL;

SELECT `users`.* FROM `users` WHERE `users`.`provider` = 'google_oauth2' AND `users`.`uid` = '...'

调用self.class.all时会发生同样的情况。

在任何阶段我都没有要求此查询限制提供者或uid,也没有在类上设置默认范围。

唯一相关的事情我认为可能是这是用户模型的设计设置;

devise :database_authenticatable, :registerable,
       :recoverable, :rememberable, :trackable, :validatable,
       :omniauthable

我的问题

  • 为什么会这样?
  • 这是我需要解决的问题,还是有另一种方法可以实现User.all

备注

  • User.all不是我的实际通话,但这是最简单的问题减少

方法

调用它的方法是类的公共方法;

def create_slug
  if User.where(slug: name.parameterize).present?
    #Stuff happens here, but the User.where isn't bringing back what I would expect
  end
end

0 个答案:

没有答案