首页控制器?

时间:2009-09-21 01:04:49

标签: ruby-on-rails ruby

我是Ruby on Rails的新手,我确信这个问题非常愚蠢,但我无法从我见过的例子中推断出答案,也许我还没有看到很多好的。

我正在处理的网站将在一个侧边栏中包含“盒子”(即小部件),其中包含动态内容,并且它的另一个侧栏上还有链接到网站的各个部分,这些部分将由不同的控制器处理。整个控制器的网站布局/风格将保持不变。例如,如果我点击一个链接,中心的内容将会改变,但网站的其余部分的设计和布局将保持不变。

我的问题是我是否应该创建类似home控制器的东西来处理首页和网站的布局,然后以某种方式屈服于特定控制器的布局(如果它被调用),然后将该控制器指定为routes.rb中的根控制器?我只是想知道如何指定布局应该保持相对相同,这样我就不必冗余并为每个控制器粘贴相同的布局代码。这是IRC推荐的人,创建一个home控制器,但我想知道这是否是正常的做事方式。对于我所关心的所有问题,答案实际上可能非常简单,但由于我是铁杆新手,所以我没有注意到。

我真的不知道如何恰当地说出我的问题,因为我对rails很新。如果某些事情没有意义,请告诉我,我会尽力澄清。

感谢。

2 个答案:

答案 0 :(得分:3)

是的,您可以使用page_controller进行此操作,并将其设置为routes.rb中的根URL。

请记住,如果您不想,您不需要为每个控制器使用单独的布局文件。如果您在layouts / application.html.erb中创建文件,它将在整个应用程序中使用。您可以通过创建根据将自动拾取的控制器命名的其他布局来覆盖它,或者在控制器中设置layout:other_name来更改它。

答案 1 :(得分:1)

如果在layouts文件夹中创建文件application.html.erb,默认情况下,任何在layouts文件夹中没有相应布局文件的控制器都会使用它。此外,您可以通过添加以下内容手动指定要在控制器中使用的布局:

layout "your_layout_name"

在您的控制器中。