不能在Rails 3中使用find_by?

时间:2014-02-01 03:15:38

标签: ruby-on-rails ruby-on-rails-3

我正在尝试使用find_by方法找到用户,但是我收到了错误

undefined method `find_by_remember_token' for #<Class:0x6650dd8>

编辑:最初尝试find_by

这是我的会员问题。

module SessionsHelper
 def sign_in(user)
    cookies.permanent[:remember_token] = user.remember_token
    current_user = user
  end

  def signed_in?
    !current_user.nil?
  end

  def current_user=(user)
    @current_user = user
  end

  def current_user
    @current_user ||= User.find_by_remember_token(cookies[:remember_token])
  end

  def current_user?(user)
    user == current_user
  end

  def sign_out
    current_user = nil
    cookies.delete(:remember_token)
  end
end

3 个答案:

答案 0 :(得分:0)

试试这个:

User.find_by(remember_token: cookies[:remember_token])

如果你想在Rails 4中使用动态查找器,你应该安装activerecord-deprecated_finders gem。

答案 1 :(得分:0)

使用:

User.where(remember_token: cookies[:remember_token]).take

取自here

答案 2 :(得分:0)

确保您已运行db:migrate以将remember_token字段添加到用户表