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_文件似乎无法自动检测扩展名。所以,这是有效的。谢谢你的帮助。