1

最近我在我的应用程序中添加了 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=>"devise/about"}

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

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

因为我可以看到路线,所以我不确定问题是什么和/或问题存在于哪里。有没有其他人见过这个问题?

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

先感谢您。

4

2 回答 2

3

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

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

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

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

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

谢谢。

于 2013-06-18T13:07:11.467 回答
1

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

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

于 2013-06-18T05:28:17.660 回答