未定义的方法`激活?'

时间:2011-02-07 22:56:02

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

我正在尝试在Rails 3中实现Authlogic并且在头痛之后一直很头疼...我对rails非常新,所以请原谅我不是专家。我跟着关于这个主题的railscast非常有帮助,但是一旦我通过实际的网站提交我的创建新用户表单,我就得到了:

undefined method `activated?'

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

任何帮助都会受到赞赏......今晚很头疼...

来自create method的代码:

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

2 个答案:

答案 0 :(得分:5)

如果有其他人遇到此问题 - 重新生成您的user_session模型并填写:

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

这为我修好了......至少围绕这个模型似乎是一个错误,所以把它带回基础!

答案 1 :(得分:2)

我遇到的问题是user_sessions表的存在。如果您通过生成器创建了UserSession模型,则可以进行迁移以创建该表。

简单地删除表(在测试和开发数据库中)和迁移文件解决了我的问题。

干杯,

- 何塞