私はSinatraからRailsに来ていますが、Railsはまだかなり新しいです。私の問題は、ユーザーアカウントを作成した後、/ publicフォルダーのindex.htmlページに移動し、他のルートにアクセスできないように見えることです。ユーザーをサインアウトできず、別のルートを追加できません。ユーザー。
私はデバイスgemを使用して、ユーザーモデルと認証を管理しています。gemをインストールした後、devisegithubページの指示に従いました。
すなわち:
rails generate devise:install
'config / environment/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'が機能するルートのようです。
問題は、電子メールサービスが設定されておらず、このアカウントが電子メールを介して検証されようとしていることであるかどうか疑問に思っていますか?もしそうなら、どうすればそれを無効にできますか?
ありがとう!さらに情報が必要な場合、または何かを明確にするために私に知らせてください。
=============== UPDATE ===================
'users / edit'ルートは機能しますが、おそらく問題は'users/sign_out'用に設定されたルートがDELETEルートであるという事実にあると思います。これについての用語を忘れましたが、GETルートからDELETEルートを作成することにはある種のトリックがあることを知っています。それで、これは私の問題がどこにあるのですか?