私はSinatraからRailsに来ています。私の問題は、ユーザーアカウントを作成した後、/ publicフォルダ内のindex.htmlページに移動しただけで、他のルートにアクセスできない場合は、ユーザーをサインアウトできず、別のルートを追加できないということですユーザー。Devise 2.0.4、Rails 3.2.3 - ユーザーアカウントを作成した後、私はルートにリダイレクトされ、他のルートにアクセスすることはできません。
私はユーザーモデルと認証を管理するためにdevise gemを使用しています。宝石をインストールした後、私はdevise githubページの指示に従った。
すなわち:
rails generate devise:install
私も '設定/環境/ development.rb' ファイルに追加
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
と、私は '設定/ 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
ですそれから私は "/ユーザ/ sign_up" にナビゲートし、私が入りました電子メールとパスワードを入力した後、パブリックフォルダのindex.htmlページにリダイレクトされました。
問題はちょうどそこに詰まっているようです。 '/ユーザー/ sign_out' 利回り
Routing Error
No route matches [GET] "https://stackoverflow.com/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
'/ユーザー/ sign_up' のように思える現用ルートでなければなりません。
電子メールサービスの設定がなく、このアカウントがトラフの電子メールの検証を試みているという問題があるのでしょうか?もしそうなら、それをどうやって無効にするのですか?
ありがとうございます!もっと情報が必要なのか、何かを明らかにするために私に教えてください。
=============== UPDATE ===================
に 'ユーザ/編集' ルート問題はおそらく、 'users/sign_out'のために設定されているルートがDELETEルートであるという事実にあると考えられます。私はこれに関する用語を忘れていますが、GETルートからDELETEルートを作成するには何らかのトリッキーがあることを知っています。それで私の問題がどこにあるのでしょうか?
は、あなたが最初のステップとして、パブリックフォルダ内の 'index.html'ファイルを削除する必要が私のためにうまく働いたサイト、それがでした。 – Robin
ステップ1完了。ここで、ルーティングエラー 初期化されていない定数HomeController goto localhost:3000 – wuliwong
インデックス付きのHomeController(app/controllers/home_controller.rb内)を作成する必要があります。使用可能なルートの詳細については、rakeルートを実行してみてください。アクション、およびapp/views/home(/index.html.erb)に関連付けられているビューが含まれます。 – Robin