应用程序控制器是否有关联的模板?

时间:2018-01-14 03:45:53

标签: ruby-on-rails ruby

假设我跑

  

rails new proj1

我能做到

  

rails生成控制器abc def

并创造了其他功能,。\ app \ views \ abc \ def.html.erb

我可以编辑config.rb来说

get '/', to: 'abc#def'

root 'abc#def'

当我转到def.html.erb

时,这会加载http://127.0.0.1:3000/模板

但是如果我能在不创建新控制器的情况下做到这一点,我感兴趣。我对是否可以使用应用程序控制器转到模板感兴趣。

因此,举例来说,我可以修改.\app\controllers\application_controller.rb并添加

def a 
end 

然后应用程序控制器的行为与其他控制器一样,并尝试呈现相应的.html.erb文件,例如'a'动作会尝试渲染a.html.erb?如果是这样,我找不到放置a.html.erb文件的位置?

其他控制器在视图中有一个子目录,每个操作在该子目录中有一个文件,一个可以手动或通过使用例如rails generate controller blah a b c生成带有操作的控制器,并为每个操作生成模板。

但我无法看到应用程序控制器..我无法看到它的视图在哪里。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

routes.rb中:

get '/', to: "application#root"

application_controller.rb

def root
end

应用程序/视图/应用/ root.html.erb

hello world

运行服务器并访问localhost:3000打印" hello world"

Sinatra做的事与此类似。路由和控制器操作基本上是组合在一起的,如果您需要,您可以自己实现类似轨道的控制器。