自定义创建的视图中没有输出

时间:2011-01-12 17:14:18

标签: ruby-on-rails

您好我创建了一个控制器文章并添加了以下代码

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

1 个答案:

答案 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

请注意,路径从文件顶部到底部按顺序匹配,一旦找到匹配,就完成了。它不会查看其余的路线。