1

ここで Devise ルーティング エラーの議論をすべて調べましたが、問題を解決する解決策が見つかりませんでした。私の環境は次のとおりです: - Ruby 1.9.3 - Rails 3.2.6 - Devise 2.2.0

ここのすべての手順に従いました: https://github.com/plataformatec/devise

ファイルは次のとおりです。

ルート.rb:

Dealzhunt::Application.routes.draw do

  devise_for :members 

  get "browse/all"

  get "home/index"

  root :to => 'browse#all'

# some other code

メンバー.rb:

class Member < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :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

レーキルート:

          new_member_session GET    /members/sign_in(.:format)       devise/sessions#new
              member_session POST   /members/sign_in(.:format)       devise/sessions#create
      destroy_member_session DELETE /members/sign_out(.:format)      devise/sessions#destroy
             member_password POST   /members/password(.:format)      devise/passwords#create
         new_member_password GET    /members/password/new(.:format)  devise/passwords#new
        edit_member_password GET    /members/password/edit(.:format) devise/passwords#edit
                             PUT    /members/password(.:format)      devise/passwords#update
  cancel_member_registration GET    /members/cancel(.:format)        devise/registrations#cancel
         member_registration POST   /members(.:format)               devise/registrations#create
     new_member_registration GET    /members/sign_up(.:format)       devise/registrations#new
    edit_member_registration GET    /members/edit(.:format)          devise/registrations#edit
                             PUT    /members(.:format)               devise/registrations#update
                             DELETE /members(.:format)               devise/registrations#destroy
                  browse_all GET    /browse/all(.:format)            browse#all
                        root        /                                browse#all

次の URL の場合:

http://localhost:3000/members/sign_in
http://localhost:3000/members/sign_up

次のエラーが表示されます。

No route matches {:controller=>"devise/browse", :action=>"all", :category=>0}

私が観察した奇妙な症状の 1 つは、root :to => 'home#index' を変更すると、メッセージが同じになることです。せめてdevise/homeに変わると思ったら/browseのままだった

最も奇妙なことは、私が新しいクリーンな Rails プロジェクトを開始したことです。devise は実際に機能します。rails generate devise:install を実行したときに何らかのエラーが発生したためかどうか疑問に思っています

本当にこの問題に行き詰まりました。誰か助けてくれませんか?

4

2 に答える 2

1

親愛なる主 私は問題の原因を見つけました。Devise は link_to 構文に問題があります。一時的な解決策は、すべての link_to を to に変更することです

<%= link_to "Home", :controller => "/browse", :action => "all" %>

コントローラー名の前に / を付けます。この問題の詳細は次のとおりです: github.com/plataformatec/devise/issues/471

于 2013-01-17T09:14:06.233 に答える
0

このエラーはどこで発生していますか? つまり、どのページを読み込んでいますか?

コントローラー「devise/browse」にルーティングするリンクまたは何かがあるようです-代わりに、コントローラー「browse」にのみルーティングする必要があります。rake routes によって生成された出力

browse_all GET    /browse/all(.:format)            browse#all

browseどうやらメソッドを持つコントローラーがあることがわかりますall

于 2013-01-14T02:59:36.833 に答える