2014-02-01 4 views
2

Я пытаюсь найти пользователя с помощью метода find_by, но я получаю ошибкуНе удается использовать find_by в Rails 3?

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

EDIT: Первоначально пытались find_by

Это мой sessionshelper, где возникает проблема.

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 

ответ

0

Попробуйте это:

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

Если вы тусклый использовать динамические искатели в Rails 4 следует установить ActiveRecord-deprecated_finders камень.

+0

Я пытался что первоначально, но по какой-то причине он также Безразлично 't work-- – google1254

+0

какая версия рельсов вы используете? какая у вас ошибка? –

+0

Также получен неопределенный метод, рельсы 3.2. Я считаю, что – google1254

0

Использование:

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

это взято из here

0

Убедитесь, что вы запустили db:migrate добавить remember_token поле в таблице пользователей

Смежные вопросы