【发布时间】:2011-12-11 16:40:24
【问题描述】:
我正在使用 RailsSpace 学习 Ruby on Rails,但在执行看似简单的命令后遇到错误。
我使用终端生成了一个带有视图索引和注册的新用户控制器:
$ rails generate controller 用户索引寄存器
它没有问题,创建文件 index.html.erb 和 register.html.erb 以及所有其他预期文件。
但是当我访问http://localhost:3000/user/register时,它会返回错误消息:
路由错误:没有路由匹配 {:controller=>"user", :action=>“关于”}
我的routes.rb没有显示异常:
RailsSpace::Application.routes.draw do
get "user/index"
get "user/register"
get "site/index"
get "site/about"
get "site/help"
root :to => "site#index"
end
为什么它会尝试路由到“关于”操作,我可以编辑哪些其他文件来更改此路由?
我正在使用 Rails 3,以防万一。
【问题讨论】:
-
看起来在你的视图中某处(layouts/application.html.erb 或 user/register.html.erb)有一个链接到这条路线:
{:action=>"about"},并且 rails 使用当前控制器(用户) 来创建路线。哪里有这样的链接? -
已经有一段时间了,就像我一直做的那样,我想知道这到底是怎么回事。如果不知道用户/注册的控制器代码中发生了什么,我真的不能说太多。它不会发生重定向到用户/关于,不是吗?此外,显然有一条站点/关于的路线。有没有可能这就是事情应该去的地方,但是教程中有一个错字将它发送给了 user/about?
标签: ruby-on-rails