您好我创建了一个控制器文章并添加了以下代码
def chid @message='hello world' respond_to do |format| format.html end end
然后我在
chid.html.erb
中创建了
app/views/articles/文件
并编写了以下代码
Hello world
当我提供以下网址时
../articles/chid我无法获得任何输出..我错过了什么?
我的日志部分
Processing ArticlesController#show (for 127.0.0.1 at 2011-01-12 21:51:01) [GET] Session ID: BAh7BzoMY3NyZl9pZCIlMTA0ZWY2ZTUzYjQxZGJkZmFlMTQwNWRjYjczNTRm%0AODAiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhh%0Ac2h7AAY6CkB1c2VkewA%3D--de7737601817f52c1b72daca6061c5126f3a5022 Parameters: {"action"=>"show", "id"=>"chid", "controller"=>"articles"} Rendering template within layouts/articles Rendering articles/show Completed in 0.01000 (100 reqs/sec) | Rendering: 0.00600 (60%) | DB: 0.00000 (0%) | 200 OK [localhost/articles/chid/]
我的router.rb文件如下
ActionController::Routing::Routes.draw do |map| map.resources :articles map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' map.match ':controller/:action/' => 'Article#chid' end
答案 0 :(得分:2)
在config
目录中有一个名为routes.rb
的文件。该文件告诉Rails如何通过映射控制器的操作来响应某些URL。
考虑一下这个例子:
match '/articles/chid' => 'Articles#chid'
这会将#{your_site_url}/articles/chid
路由到ArticlesController
的{{1}}操作,这反过来会使chid
视图位于chid.html.erb
。
我们也可以告诉Rails将views/articles
路由到什么地方:
/
最后,我们还可以使用所谓的绑定参数将任何控制器路由到任何操作:
root :to => 'Articles#chid'
作为最后一点,请务必查看Rails Guides on Routing。
<强>更新强>:
尝试使用以下match ':controller/:action'
:
routes.rb
修改强>
根据您刚发布的routes.rb文件,此行是罪魁祸首。删除它。
ActionController::Routing::Routes.draw do |map|
map.connect ':controller/:action'
end
请注意,路径从文件顶部到底部按顺序匹配,一旦找到匹配,就完成了。它不会查看其余的路线。