Rails:用户没有响应'设计'方法“运行时”rails generate devise:install“

时间:2013-08-01 10:07:27

标签: ruby-on-rails ruby database devise

我已经在这个问题上工作了好几个小时了,并且好像在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文件,所以我不知道如何解决这个问题。

尝试解决:尝试this answer然而,这并没有让我填充我需要的正确的佣金路线(即:新用户会话,创建新用户等等。)

尝试重做命令的顺序(如下所示)..但那也没有工作......我总是被困在&#34; rake db:migrate&#34;部..

$ 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 

如果您知道修复程序,请提前感谢您!

1 个答案:

答案 0 :(得分: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自动加载器路径中有另一个类或模块“User”,并且当devise_for:users行需要User类时,此类/模块首先加载,而您的真实User模块未加载。 “无效”用户模块/类不是ActiveRecord后代,因此未安装设备AR挂钩,因此它没有#devise方法。因此,请确保您没有任何其他名为User

的类/模块