首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ramaze中渲染父目录中的部分

在Ramaze中渲染父目录中的部分
EN

Stack Overflow用户
提问于 2012-12-07 09:48:16
回答 3查看 1.5K关注 0票数 3

如何渲染与当前视图不同的目录(在我的例子中是父目录)中的部分内容?

代码语言:javascript
复制
<%=render_partial :sidebar%> #looks in the current dir and works as expected
<%=render_partial "/view/sidebar"%> #doesn't work!

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2013-04-20 20:24:10

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

TheRightController.render_partial :侧边栏

如果不指定控制器类,除了执行实际内部render_*请求的render_full之外,HTTP只适用于当前操作(控制器)。

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

Shared.render_partial的工作方式类似于内部请求。它呈现控制器的操作内容,甚至执行操作的方法。如果只想呈现视图(不执行Shared的操作方法),请使用Shared.render_view。

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

票数 1
EN

Stack Overflow用户

发布于 2012-12-07 10:03:41

我在apidock.com中发现了下面的接口,可能对你有用

代码语言:javascript
复制
 # 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
票数 -1
EN

Stack Overflow用户

发布于 2013-10-30 09:27:00

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

<%= render "/sidebar" %>

而不是

<%=render_partial "/view/sidebar"%> #doesn't work!

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13755719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档