2013-02-20 55 views
0

美好的一天,Rails:模板文件夹

我尝试了一些轨道基础知识。

我想创建一个模板并在我的布局文件中使用这些模板。

我创建这个文件:意见/模板/ sidebar.html.erb

<% content_for (:sidebar) do %> 

<ul> 
    <li>TEST</li> 
    <li>TEST</li> 
</ul> 
<% end %> 

我的布局文件:景色/布局/ test.html.erb

<%= yield :sidebar %> 

看来:模板缺失

出了什么问题?

+1

当布局中没有“yield:sidebar”时,它是否也显示错误消息?它可能找不到该操作的模板。它正在查找的模板的文件路径是什么?这是它期望的文件。 – 2013-02-20 18:00:00

+0

啊好吧我的电话是错误的:布局“user_interface_trainerone”。 – ubuseral 2013-02-20 18:22:18

+0

现在显示,但不显示侧边栏。 – ubuseral 2013-02-20 18:22:38

回答

1

content_for需要包含在视图中。你可以把它放到行动的视图中。或者,(可能你想做什么),你可以

<%= render :partial => "template/sidebar" %> 

从你的行动的看法。您必须将文件从sidebar.html.erb重命名为_sidebar.html.erb。

+0

好的,但是在他们解释的用content_for创建模板的书中,然后你必须在布局 – ubuseral 2013-02-20 19:27:07

+0

中包含这个<%= yield:sidebar%>,就像这里指向3.2 http://guides.rubyonrails.org/layouts_and_rendering。 html#understanding-yield – ubuseral 2013-02-20 19:34:42

+0

@ddd您必须调用“yield:sidebar”才能生成与符号:sidebar相关的模板标记。对“content_for:sidebar”的调用将使符号:侧边栏与块中的标记相关联。但是,您需要运行“content_for:sidebar”的代码,这是您从未调用过的方式。您需要将content_for调用放入视图(也称为模板)中,该视图将被调用以执行操作。它不会在views/template目录中自动找到它。 – 2013-02-21 15:12:17