【问题标题】:Devise : No route matches {:controller=>"devise/about"}设计:没有路线匹配 {:controller=>"devise/about"}
【发布时间】:2013-06-18 04:55:41
【问题描述】:

最近我在我的应用程序中添加了 gem 'devise'。然后我完成了设计 github 页面上记录的基本安装步骤。完成设计的安装后,我运行了命令:

rails generate devise:install

然后我运行命令:

 rails generate devise User

这两个命令都成功了。

然后我确保我的配置中有一个已定义的 root_url;在我的情况下是:

root :to => "sample#index"

执行此操作后,我运行了命令:

 rails g devise:views

根据命令行响应,这也很有效。

在执行完所有这些步骤后,我运行了 rake 路线,以确保新的设计路线和路径可用。然后我重新启动了我的应用程序服务器。

我遇到的问题是当我尝试访问 localhost:3000/users/sign_up 时收到错误消息:No route matches {:controller=>"设计/关于"}

我耙的时候可以清楚地看到路线:

    new_user_registration GET    /users/sign_up(.:format)          devise/registrations#new

因为我可以看到路线,所以我不确定问题出在哪里和/或问题出在哪里。有其他人以前见过这个问题吗?

顺便说一句,我目前正在运行 Ruby-2.0.0-p195 和 Rails 3.2.13

提前谢谢你。

【问题讨论】:

  • 你的路由文件是什么样子的?

标签: ruby-on-rails-3 devise


【解决方案1】:

你让我走上了正确的道路。我检查了日志,发现我在 Application.html.erb 布局文件中使用的链接设置为:

 <%= link_to( :controller => 'about' ... etc. ) %> 

为了解决这个问题,我将路径更改为:

 <%= link_to(  :controller => '/about' ... etc. ) %> 

通过添加正斜杠,Rails 能够正确找到我的控制器的位置,并且此错误消失了。

谢谢。

【讨论】:

    【解决方案2】:

    检查您的日志文件 (log/development.log) 以获取有关该错误的更多信息 - 您很可能在该页面上使用无效路由编写了链接。

    请注意,错误是关于 devise/about,而不是您正在访问的 users/sign_up

    【讨论】:

    • 请看我下面的注释!谢谢。
    猜你喜欢
    • 2012-11-20
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多