不能在Rails 3中使用find_by?

时间:2021-07-01 19:43:03

I'm trying to locate a user by using a find_by method, but I get the error

我试图通过使用find_by方法找到用户,但我得到了错误

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

EDIT: Initially tried find_by

编辑:最初尝试find_by

This is my sessionshelper where the issue arises.

这是我的会员问题出现的问题。

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 个解决方案

#1


0  

Try this:

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

If you wan to use dynamic finders in Rails 4 you should install the activerecord-deprecated_finders gem.

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

#2


0  

Use:

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

it's taken from here

它取自这里

#3


0  

Make sure you have run db:migrate to add the remember_token field to users table

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

#1


0  

Try this:

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

If you wan to use dynamic finders in Rails 4 you should install the activerecord-deprecated_finders gem.

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

#2


0  

Use:

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

it's taken from here

它取自这里

#3


0  

Make sure you have run db:migrate to add the remember_token field to users table

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