我从 Sinatra 来到 Rails,对 Rails 还是很陌生。我的问题是,在创建用户帐户后,我只是被定向到 /public 文件夹中的 index.html 页面,并且似乎无法访问任何其他路由,我无法注销用户,也无法添加另一个用户。
我正在使用设计 gem 来管理我的用户模型和身份验证。安装 gem 后,我按照设计 github 页面上的说明进行操作。
IE:
rails generate devise:install
我还添加到“config/environments/development.rb”文件中
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
我添加到“config/routes.rb”文件中
root :to => "home#index"
我添加到“app/views/layouts/application.html.erb”文件中
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
然后我跑了
rails generate devise User
最后
rake db:migrate
这是我的用户模型
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
# attr_accessible :title, :body
end
然后我导航到“/users/sign_up”并输入了电子邮件和密码,然后我被重定向到公共文件夹中的 index.html 页面。
问题是我似乎被困在那里。'/users/sign_out' 产量
Routing Error
No route matches [GET] "/users/sign_out"
Try running rake routes for more information on available routes.
并运行“耙子路线”产量
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
root / home#index
似乎 '/users/sign_up' 应该是一条可行的路线。
我想知道问题是否在于没有电子邮件服务设置并且该帐户正在尝试通过电子邮件进行验证?如果是这样,我该如何禁用它?
谢谢!如果您需要更多信息或让我澄清一些事情,请告诉我。
===============更新===================
'users/edit' 路由确实有效,我认为问题可能在于为 'users/sign_out' 设置的路由是 DELETE 路由。我忘记了这方面的术语,但我知道从 GET 路由中创建 DELETE 路由时存在某种诡计。那么这是我的问题所在吗?