我是Ruby on Rails的新手,我来自Drupal / PHP背景。
我正在尝试做一些简单的事情。某些页面的“静态”控制器,如关于我们,免责声明等,以及视频的“视频”控制器。
整个应用程序具有相同的外观。我试图弄清楚如何避免重复观看。
在drupal中,主题是这样的: html.tpl.php(渲染page.tpl.php) - page.tpl.php(渲染多个block.tpl.php) - block.tpl.php(呈现更多嵌套的tpls或主题函数生成的一些html)。
我发现这很棒。
在rails中,我读到的是application.html.erb(我认为它类似于Drupal的html.tpl.php,因为它通常包含整个应用程序中可用的样式表,js等),称为“布局” ”。然后是“视图”,它在此布局中“产生”内容。我们在控制器中指定视图,或者它自动获取一个视图。我认为一个视图是Drupal的“page.tpl.php”。
我的大多数网站都使用相同的结构,即标题,顶级菜单,内容,右侧边栏,页脚。但每个区域的内容根据路径而变化。所以我想这样做:
我读到的另一个是偏见。我似乎无法区分在另一个视图中渲染视图和渲染部分视图。
哪种方法更好?还是有更好的“Rails方式”?
答案 0 :(得分:0)
这是一个非常大的主题,但编辑的要点是
如果您想在每个页面上重复内容,例如标题或导航栏,请将其放入layouts / application.html.erb
如果您想使用特定于该页面的内容保持您的观点整洁,那么您可以使用部分内容。通常在视图中我创建一个名为shared的文件夹,然后将我的部分放在那里。例如,如果我保存一个名为_form.html.erb的部分(确保你在文件名的开头用下划线命名部分),我会在我的视图中调用它,如
<%= render 'shared/form' %>
你也可以在布局/应用程序文件中使用partial来保持干净
这只是我的做法,我相信更有经验的铁杆人有更好的方法
希望有帮助,再问任何问题