0

我已经在这个问题上工作了几个小时,似乎在 StackOverflow 上没有找到任何类似的东西。

   C:\Sites\isawyou>rake db:migrate
    rake aborted!
    User does not respond to 'devise' method. This usually means you haven't loaded
    your ORM file or it's being loaded too late. To fix it, be sure to require 'devi
    se/orm/YOUR_ORM' inside 'config/initializers/devise.rb' or before your applicati
    on definition in 'config/application.rb'
    C:/Sites/isawyou/config/routes.rb:2:in `block in <top (required)>'
    C:/Sites/isawyou/config/routes.rb:1:in `<top (required)>'
    C:2:in `rescue in execute_if_updated'
    C:in `execute_if_updated'
    C:/Sites/isawyou/config/environment.rb:5:in `<top (required)>'
    Tasks: TOP => db:migrate => environment
    (See full trace by running task with --trace)

问题:每次我尝试迁移时都会收到此错误。但是,我没有安装 devise.rb 文件,所以不知道如何解决这个问题..

尝试解决:尝试了这个答案,但是没有让我填充我需要的正确 rake 路由(即:新用户会话、创建新用户等)

尝试重做命令的顺序(如下所示)..但这也不起作用..我总是卡在“rake db:migrate”部分..

$ rails d devise User
$ rails generate devise:install (you may have to override previous files)
$ rails generate devise User
$ rake db:drop
$ rake db:create
$ rake db:migrate
$ rake routes 

如果您知道修复方法,请提前感谢您!

4

1 回答 1

3

看起来您之前设计的生成器运行不成功。Backtrace 提供了一个线索,错误发生在 config/routes.rb 第 2 行。我猜有以下代码行,设置设计路线

devise_for :users

但是您的用户模型没有设计模块设置。应该有类似的东西

# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :timeoutable  and :omniauthable
devise :database_authenticatable, :rememberable, :trackable, :validatable

如果此行存在,则表示设备安装不正确。

您也有可能在 ActiveSupport::Dependencies 自动加载器路径中有另一个类或模块“用户”,并且当 devise_for :users 行需要用户类时首先加载该类/模块,而您的真实用户模块未加载。“无效”用户模块/类不是 ActiveRecord 后代,因此没有安装设计 AR 挂钩,因此它没有 #devise 方法。因此,请确保您没有任何其他名为 User 的类/模块

于 2013-08-01T12:13:56.460 回答