3

タイトルの混乱をお詫びしますが、まさにそのように聞こえます。devise によって destroy_administrator_session として生成されたルートがありますが、それにリンクするたびに、存在しないそのモデルの show メソッドに移動します。

モデル名はアドミニストレーターでルートはこちら

destroy_administrator_session DELETE /administrators/sign_out(.:format)        devise/sessions#destroy

マイ Haml コール

= link_to('signout', destroy_administrator_session_path)
= link_to ('Logout', destroy_administrator_session_path), :method=>'delete'
= link_to 'Sign out', destroy_administrator_session_path, :method=>'delete'

それぞれが少しずつ異なって書かれていますが、それらはすべて、私が実装していない管理者の show メソッドにアプリケーションを戻します。上記のデバイス ルートからわかるように、show はまったく変更されません。

最後に、routes.rb ファイルです。

  get "/administrators/sign_out" => "devise/sessions#destroy", :as => :destroy_administrator_session
  devise_for :administrators
  resources :administrators

何が起こっているのか、いくつかの予感があります。

  1. ルートが正しく定義されていません
  2. 実際のデバイスルートで何が起こるかを指定する必要があり、さらに構成が必要です
  3. リソースが競合していますが、それらを削除しても何も起こりません。

どんな助けでも大歓迎

4

2 に答える 2

0

何が起こったのか、なぜこれが変更をもたらしたのかはまだわかりませんが、うまくいけば途中で誰かを助けるでしょう

  devise_scope :administrator do
    get "/administrators/sign_out" => "devise/sessions#destroy", :as => :destroy_administrator_session
    devise_for :administrators
  end
  resources :administrators
于 2012-06-25T09:50:09.437 に答える