質問

私は(Railsの3とルビー1.9.2)私のRailsアプリケーションでの作業カスタムルートを取得しようとしている。

これは私のconfig / routes.rbをファイルです。

match '/dashboard' => 'home#dashboard', :as => 'user_root'
devise_for :user do
   get "/login", :to => "devise/sessions#new" # Add a custom sign in route for user sign in
   get "/logout", :to => "devise/sessions#destroy" # Add a custom sing out route for user sign out
   get "/register", :to => "devise/registrations#new" # Add a Custom Route for Registrations
end

しかし、上/ログインまたは/レジスタフォームを送信すると、ユーザー/ sign_inに行きます ユーザー/ sign_up。どのように私はこのようなことが起こらないでください。または、より良いユーザー/ sign_inなどのために、デフォルトですべての要求が工夫によって生成され、関連するルートではなく、デフォルトルートに行くことを確認してください。

また、どのように私は、任意のコントローラに含めるログインフォーム部分を作ることができますか?だから私は、ホームページ(ホーム#インデックス)にログインページを持つことができることではなく、ユーザー/ sign_inに?

私は、Mac OSX Snow Leopardの上で、Rubyの1.9.2上のRails 3で考案1.1.3を使用しています。

ありがとうございます。

役に立ちましたか?

解決

工夫1.1.3では、以下が動作するはずです。

devise_for :user, :path => '', :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" }

は、作成したルートがあるため:pathパラメータが空の文字列であることの「/ユーザ/ ...」が付加されることはありません。 :pathnamesハッシュは、あなたが好きなようにルートを命名するの世話をします。 /ログイン提出する内部ので、これらのルートを使用します考案は、あなたが望むように動作し、へ/ユーザー/ log_in

あなたを取ることはありません

あなたのフロントページ工夫Wikiの情報がありますへのログインフォームを追加するには: ます。http: //github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-appする

それとも行うこのような何かます:

 <%= form_tag new_user_session_path do %>
  <%= text_field_tag 'user[email]' %>
  <%= password_field_tag 'user[password]' %>
 <%=  submit_tag 'Login' %>

他のヒント

以下は私のために働いてます:

  devise_for :users do
    get "/login" => "devise/sessions#new"
    get "/register" => "devise/registrations#new"
  end

あなただけのdevise_forブロックにあなたの特別なルートを入れていない必要が

match '/dashboard' => 'home#dashboard', :as => 'user_root'
get "/login", :to => "devise/sessions#new" # Add a custom sign in route for user sign in
get "/logout", :to => "devise/sessions#destroy" # Add a custom sing out route for user sign out
get "/register", :to => "devise/registrations#new" # Add a Custom Route for Registrations
devise_for :user

今/ログイン作品。 /ユーザー/ sign_inすぎます。

コンフィグます:

  devise_scope :user do
    get 'profile/edit'    => 'devise/registrations#edit',   :as => :edit_user_registration
    get 'profile/cancel'  => 'devise/registrations#cancel', :as => :cancel_user_registration
  end

  devise_for  :users,
              :path => '',
              :path_names => {  :sign_in =>       'login',
                                :sign_out =>      'logout',
                                :sign_up =>       '',
                                :registration =>  'register',
                                :edit =>          'edit',
                                :cancel =>        'cancel',
                                :confirmation =>  'verification'  }

ルートます:

  edit_user_registration GET    /profile/edit(.:format)      devise/registrations#edit
cancel_user_registration GET    /profile/cancel(.:format)    devise/registrations#cancel
        new_user_session GET    /login(.:format)             devise/sessions#new
            user_session POST   /login(.:format)             devise/sessions#create
    destroy_user_session DELETE /logout(.:format)            devise/sessions#destroy
           user_password POST   /password(.:format)          devise/passwords#create
       new_user_password GET    /password/new(.:format)      devise/passwords#new
      edit_user_password GET    /password/edit(.:format)     devise/passwords#edit
                         PATCH  /password(.:format)          devise/passwords#update
                         PUT    /password(.:format)          devise/passwords#update
                         GET    /register/cancel(.:format)   registrations#cancel
       user_registration POST   /register(.:format)          registrations#create
   new_user_registration GET    /register(.:format)          registrations#new
                         GET    /register/edit(.:format)     registrations#edit
                         PATCH  /register(.:format)          registrations#update
                         PUT    /register(.:format)          registrations#update
                         DELETE /register(.:format)          registrations#destroy

私は私のコントローラ

に私自身の認証コントローラおよびルーティングされた工夫セッションコントローラを作成
devise_for :users, 
:controllers => {
    :sessions => 'auth' },

:path => '/',

:path_names => {
    :sign_in  => 'login',
    :sign_out => 'logout' }

このコードが追加されます/ログインおよび/ログアウトURLをます。

あなたがソースコード内で見つけることができるこのについての詳細は HTTP ://github.com/plataformatec/devise/blob/master/lib/devise/rails/routes.rbする

あなたのroutes.rbをファイルの先頭に使用この

map.connect "users/:action", :controller => 'users', :action => /[a-z]+/i 

あなたのインデックスファイルがどこにこれを使用しています。それはユーザーモデル上にある場合は、上記または変更に応じて

を使用
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top