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约定。