每个rails应用程序都在其布局中创建了默认的application.html.erb吗?

时间:2011-06-01 17:18:48

标签: ruby-on-rails layout views

我只是有一个普遍的疑问,我想要清除那些Rails。我目前正在处理Rails 2.0.2以用于项目特定目的,我对此版本的Rails特别有疑问。

我在我的rails应用程序中使用“帖子”做了一个基本的脚手架..类似于ruby script/generate scaffold posts。这在我的app / views / layouts中为我创建了一个posts.html.erb文件。我在许多博客/屏幕演员中看到过,当我们添加Javascript(JS)文件时,例如那些实现jquery等我们需要在我们的"application.html.erb"文件中包含必要的文件..现在因为我在我的应用程序中没有任何确切的创造...默认情况下Rails会使用{{1}在我的布局中作为等效的posts.html.erb ..?

或者我需要在我的rails应用程序中明确创建application.html.erb吗?

我在这个问题背后的主要关注点是,如果我有类似application.html.erb之类的东西,那将包含JS文件,或者是......它应该只在posts.html.erb中完成..

谢谢..

3 个答案:

答案 0 :(得分:1)

对于PostsController,Rails将首先查找app/views/layouts/posts.html.erb文件。只有当它找不到这个特定于控制器的布局时,它才会回退到app/views/layouts/application.html.erb

答案 1 :(得分:0)

  

默认情况下Rails会将我的布局中的posts.html.erb作为等效的application.html.erb ...?

是。对于PostsController,它(根据惯例)将layouts/posts.html.erb作为整体布局模板。

如果删除此文件,它将回退到layouts/application.html.erb布局。

  

我在这个问题背后的主要关注点是,如果我有类似posts.html.erb的东西,那将包含JS文件,或者是......它应该只在application.html.erb中完成..

您必须在每个布局中包含所有必需的JS / CSS,因为没有布局继承。

如果你想要多个布局,你可以将部分重构为部分(例如:<head>位)。

答案 2 :(得分:0)

当您执行“rails new ProjectName”时,应该已经为您生成了app / views / layouts / application.html.erb文件

确保您拥有一个......它控制着您网站的总体布局。