【问题标题】:Devise route issue设计路线问题
【发布时间】:2011-02-07 22:31:35
【问题描述】:

我正在使用 devise 对我的项目进行身份验证。我创建了一个名为 panel with rails 的基本控制器。当我在 home url 时,链接可以正常工作。但是由于某种原因,我的布局文件中的 link_to 试图找到当我转到 /users/sign_in 时不存在的路由,这是设计的默认登录名。

在我的布局文件中,我有这个应该始终显示的链接。

   <%= link_to "Panel", :controller => "panel", :action => "index" %>

当我尝试访问 devise /users/sign_in 上的默认用户登录路径时,它会给出错误:ActionController::RoutingError in Devise/sessions#new

没有路由匹配布局文件中的 {:controller=>"devise/panel"}。

路线:

  get "panel/index"

  get "home/index"

  devise_for :users

当我单击 users/sign_in 路径的链接时,路由似乎进入了某种设计范围。

【问题讨论】:

  • 能否请您提供您的路线?

标签: ruby-on-rails


【解决方案1】:

试试这个:

routes.rb:

get "panel/index" => 'panel#index', :as => 'panel'

在您的控制器中:

<%= link_to "Panel", panel_path %>

【讨论】:

  • 不幸的是,这不起作用。没有路线匹配 {:controller=>"devise/panel"}
【解决方案2】:
 get "panel/index", :as => :panel_index


 <%= link_to "Panel", panel_index_path %> |

【讨论】:

    【解决方案3】:

    执行以下操作也可以解决,

        <%= link_to "Panel", :controller => "/panel", :action => "index" %>
    

    来源:https://github.com/plataformatec/devise/issues/471

    【讨论】:

      猜你喜欢
      • 2013-10-10
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多