Rails:简单路由问题

问题描述:

这应该相当容易。我跟着一个相当过时的视频课程,因为它看起来像但我想弄清楚这一点:Rails:简单路由问题

我创建了一个名为“说,”,然后创建一个say_controller.rb控制器。里面有,我创建了一个名为新方法“你好,”所以say_controller内部看起来是这样的:

class SayController < ApplicationController 
    def hello 
     respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @derps } 
     end 
    end 

end 

然后,我创建了一个hello.html.erb下/应用/视图/说/有一些HTML在里面。如果您尝试在localhost:3000/say/hello中访问它,则会出现路由错误。所以我说这routes.rb中:

match 'say/hello' => 'say#hello' 

这里的问题,但 - 如果你运行Rails生成脚手架DERP,然后在路线你会看到

resources:derps 

,就是这样的会唯一在那里。 Rails如何知道在没有特定匹配命令的情况下路由到它?即我看到这里发生了什么,但我想理解这个理论。 更重要的是,当我手工创建视图和控制器时,我需要依赖什么(我是否必须这样做?) - Rails中的标准过程是为每个手动添加一行到routes.rb,并手动添加一行每个视图/控制器?

的Merci :)

resources及其变种奇异路由resource实际上说明符在使其成为一个更容易定义应用程序是如何呈现的URL明智的希望,同时建立多条航线。

您可以在rake routes列表中看到生成的路线。这些都可以用一系列的match声明手动指定,但通常这不是一个非常有效的方法。

使用resources的原因是为了鼓励符合标准的REST约定。