2011-02-07 2 views
2

Я пытаюсь реализовать Authlogic в Rails 3 и только что болел головной болью ... Я чрезвычайно новичок в рельсах, поэтому, пожалуйста, простите меня за то, что я не специалист. Я последовал railscast по этому вопросу, который был очень полезным, но как только я представить мой создать новую пользовательскую форму с помощью фактического сайта я получаю это:undefined метод `активирован? '

undefined method `activated?' 

app/controllers/users_controller.rb:37:in `create' 

Любая помощь будет оценена ... SO был головная боль с этим сегодня вечером ...

код от создания метода:

def create 
    @user = User.new(params[:user]) 
    if @user.save 
     flash[:notice] = "Registration successful." 
    else 
     render :action => 'new' 
    end 
    end 
+0

Вставить код в 'UsersController метод # create' поэтому мы можем видеть, что он пытается сделать. –

+1

Если кто-то еще сталкивается с этой проблемой - обновите модель user_session и заполните ее: класс UserSession Jamie

+2

Jamie, пожалуйста, разместите это как ответ (вам даже разрешено принимать свой ответ через два дня). Таким образом, этот вопрос не возникает как «без ответа». Благодарю. – jhwist

ответ

5

Если кто-то ударяет этот вопрос - регенерировать модель user_session и залейте его:

class UserSession < Authlogic::Session::Base 
    def to_key 
    new_record? ? nil : [ self.send(self.class.primary_key) ] 
    end 
end 

Это исправлено для меня ... кажется, это ошибка, связанная с этой моделью, по крайней мере, так что верните ее на основы!

+0

Это сработало для меня, но мне было интересно, как это устраняет проблему и почему? Спасибо заранее, если вы можете объяснить свой ответ :) – alvincrespo

+0

Спасибо, у меня была такая же ошибка на FactoryGirl.create (: user), и я был смущен, потому что у меня есть «активированный?» Метод в пользовательской модели. – ole

2

Проблема для меня заключалась в существовании таблицы user_sessions. Если вы создали модель UserSession через генератор, у вас есть миграция, которая создает эту таблицу.

Просто удалите таблицу (как в тестовых, так и в баз данных разработки), и файл миграции решил проблему для меня.

Приветствия,

- Хосе

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