【发布时间】:2014-07-31 16:08:15
【问题描述】:
我一直在努力掌握设计及其工作原理,但在第一个障碍中有点落伍。我查看了几个地方,但似乎无法准确找到出现此错误的人。
所以我创建了一个带有索引视图的简单 Home 控制器,并添加了 root 'home#index' 并确保在 development.rb 文件中设置了默认 url 选项。然后我简单地输入:
rails generate devise User
这在具有以下内容的模型中创建了我的 user.rb 文件:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
到目前为止非常简单,我有以下 Gemfile:
source 'https://rubygems.org'
gem 'rails', '4.0.5'
gem 'sqlite3'
gem 'sass-rails', '~> 4.0.2'
gem 'devise'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
gem 'sdoc', require: false
end
gem 'bcrypt'
当我运行 rake db:migrate 时,我得到以下错误:
rake aborted!
NoMethodError: undefined method `devise' for User (call 'User.connection' to establish a connection):Class
/home/jonlee/.rvm/gems/ruby-2.1.1@railstutorial_rails_4_0/gems/activerecord-4.0.5/lib/active_record/dynamic_matchers.rb:22:in `method_missing'
/home/jonlee/Projects/rails/userauth/app/models/user.rb:4:in `<class:User>'
/home/jonlee/Projects/rails/userauth/app/models/user.rb:1:in `<top (required)>'
我不知道为什么用户模型无法找到“设计”方法,而据我所知,它肯定存在。
我在使用 rake 路由、rails 服务器和 rails 控制台时遇到了类似的错误。
如果有帮助,我正在使用 ruby 2.1.1 以获取更多信息?
【问题讨论】:
-
您似乎错过了安装设计初始化程序的一步。你运行
rails generate devise:install命令了吗? -
在使用“管理员”模型时也遇到了这个问题——我已经运行了所有必要的步骤......
-
我遇到了这个问题,因为之前执行
rails g devise user到rails g devise:install我解决了这个问题,stackoverflow.com/a/65554117/1873466
标签: ruby-on-rails ruby devise