Ruby on rails 在实现Rails_admin(并移动到Rails 3.1)后注销应用程序(使用Desive)

Ruby on rails 在实现Rails_admin(并移动到Rails 3.1)后注销应用程序(使用Desive),ruby-on-rails,devise,ruby-on-rails-3.1,rails-admin,Ruby On Rails,Devise,Ruby On Rails 3.1,Rails Admin,更新:/*我能够通过设置资产管道来解决问题,如中所述*/ 我正在我的应用程序中使用Desive进行身份验证。在我添加gem Rails_admin之前,它一直运行良好。在这个过程中,我也迁移到了Rails 3.1,所以问题可能在于迁移到3.1 注销后,我得到: “找不到id=注销的用户” 它可以追溯到用户\u控制器的显示操作和参数:{“id”=>“sign\u out”} “注销”链接位于应用程序布局中: <%= link_to 'User Sign Out', destroy_user_

更新:/*我能够通过设置资产管道来解决问题,如中所述*/

我正在我的应用程序中使用Desive进行身份验证。在我添加gem Rails_admin之前,它一直运行良好。在这个过程中,我也迁移到了Rails 3.1,所以问题可能在于迁移到3.1

注销后,我得到:

“找不到id=注销的用户”

它可以追溯到用户\u控制器的显示操作和参数:
{“id”=>“sign\u out”}

“注销”链接位于应用程序布局中:

<%= link_to 'User Sign Out', destroy_user_session_path, :method => :delete %>
这个问题似乎与:相似,只是我指定了delete方法

接着。在Desive中发现了这种方法:

  def after_sign_out_path_for(resource_or_scope)
    root_path
  end
谁能告诉我怎么进一步挖掘?即如何找到“资源”或“范围”?根路径在路径中看起来很好

这是我的路线。rb:

Notebook::Application.routes.draw do

  mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'

  devise_for :owners

  match '/user' => 'users#dashboard', :as => :user_root
  match '/customer' => 'customers#dashboard', :as => :customer_root

  match 'users/dashboard' => 'users#dashboard'

  match 'customers/dashboard' => 'customers#dashboard'


  devise_for :users

  devise_for :customers

  resources :users

  resources :customers, :only => [:index, :show, :edit, :update, :destroy]

  root :to => 'misc#landing'
end

您正在使用自定义会话控制器吗?让我们看看你的<代码>路由。RB < /Cord>文件,这样我们就可以看到发生了什么事?不使用自定义控制器。我认为有一个解决方案,尽管我不认为它更可取,那就是修改会话控制器,这样重定向就不会转到“签出”路径之后。在上面添加了my routes.rb。
after\u sign\u out\u路径
只是会话被破坏后的回调,不会得到您想要的。我从未使用过rails_admin gem,在了解更多情况之前,我必须对其进行深入研究。您的问题似乎与我以前遇到的一些问题非常相似,包括我自己的问题。看看我这个问题的答案(希望这有帮助!我可以通过在RixSCAST.892中描述的资产管道的建立来解决这个问题。你使用自定义会话控制器吗?也让我们看看你的<代码>路由。RB < /代码>文件,这样我们就可以看到发生了什么事。不使用自定义控制器。我认为一个修复,虽然我认为不是最好的,是MOD。通知会话控制器,使重定向不会转到after_sign_out_路径。在上面添加了my routes.rb。
after_sign_out_路径
只是会话被破坏后的回调,不会得到你想要的。我从未使用过rails\u admin gem,必须在了解更多信息之前对其进行深入研究n、 您的问题似乎与我以前遇到的一些问题非常相似,包括我自己的问题。请查看我在这个问题中的答案[。希望这有帮助!我能够通过设置Railscast 282中描述的资产管道来解决问题。
Notebook::Application.routes.draw do

  mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'

  devise_for :owners

  match '/user' => 'users#dashboard', :as => :user_root
  match '/customer' => 'customers#dashboard', :as => :customer_root

  match 'users/dashboard' => 'users#dashboard'

  match 'customers/dashboard' => 'customers#dashboard'


  devise_for :users

  devise_for :customers

  resources :users

  resources :customers, :only => [:index, :show, :edit, :update, :destroy]

  root :to => 'misc#landing'
end