Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在Ramaze的父目录中呈现部分_Ruby_Ramaze - Fatal编程技术网

Ruby 在Ramaze的父目录中呈现部分

Ruby 在Ramaze的父目录中呈现部分,ruby,ramaze,Ruby,Ramaze,如何渲染与当前视图位于不同目录(在我的示例中是父目录)中的分部 <%=render_partial :sidebar%> #looks in the current dir and works as expected <%=render_partial "/view/sidebar"%> #doesn't work! #查看当前目录并按预期工作 #不行! 谢谢 我在apidock.com上找到了下面的api,可能对你有用 # Renders a collection

如何渲染与当前视图位于不同目录(在我的示例中是父目录)中的分部

<%=render_partial :sidebar%> #looks in the current dir and works as expected
<%=render_partial "/view/sidebar"%> #doesn't work!
#查看当前目录并按预期工作
#不行!

谢谢

我在apidock.com上找到了下面的api,可能对你有用

 # Renders a collection of partials located in a view subfolder
 # outside of our current controller.  In this example we will be
 # rendering app/views/shared/_note.r(html|xml)  Inside the partial
 # each element of @new_notes is available as the local var "note".
 render :partial => "shared/note", :collection => @new_notes

您必须指定负责右视图的右控制器:

TheRightController.render_部分:侧栏

如果未指定控制器类,则render_*仅适用于当前操作(控制器),但执行真正内部HTTP请求的render_full除外

因此,答案是:如果您需要共享模板,只需创建特殊的控制器,即称为shared,内部没有任何操作方法,只需在适当的视图文件夹中使用许多模板,并调用shared.render_partial

Shared.render_部分工作类似于内部请求。它呈现控制器动作的内容,甚至执行动作的方法。如果要仅渲染视图(而不执行Shared的操作方法),请改用Shared.render\u视图

此外,您可以使用内部请求在共享控制器的方法中准备一些数据。例如,如果您的边栏由@articles组成,那么让我们将它们加载到Shared的sidebar()方法中。您不需要在显示侧边栏的任何其他控制器中加载@articles!您只在其中调用“Shared.render_partial:sidebar”。这就是如何使用Ramaze:-)构建类似web的小部件的方法。

@rebnoob可以使用(没有
view
目录名,因为Rails在app/view目录上搜索)

而不是

#不起作用


谢谢你,里奇,但恐怕不行。Ramaze在视图中没有渲染方法(它有一些渲染方法);上面的代码示例可能是Rails?哦,抱歉,看不清标记,我想你可以使用render_文件,它可以包含完整路径。是的,总是有这个选项,但我不想使用绝对路径。ramaze与Rails相同,render relative path仅在同一视图文件夹中呈现部分,如果你想渲染另一个文件夹的部分视图,那么你应该使用完整视图路径渲染部分视图,除非框架找不到部分视图。啊,我明白了。render_文件似乎无法自动检测扩展名。所以,这是有效的。谢谢你的帮助。