![]() |
1
34
你问题中的术语有点混乱。如果在一个控制器中,并且您希望在另一个控制器的另一个操作方法中执行代码并呈现其模板,那么您应该重定向到该操作。假设另一个控制器叫做ContractsController
如果只想使用另一个方法的视图模板作为操作的响应,只需在render参数中为控制器的名称加前缀。这不会调用操作,它只使用其模板。 例如,如果模板位于合同控制器的文件夹中。
我认为在这种情况下,你实际上是在谈论一个部分,它看起来像
然而, 我在这里看到的是,您实际上想要调用多个操作方法来呈现一个页面。这不是它的工作原理。您必须设置模板在单个操作中引用的对象。这是大多数Rails开发人员在模型中放置大量代码的原因之一,因此设置不会在所有控制器上重复。 但还有另一种方法… 哪里的魔力 JavaScript 进来。 在您的页面中,创建如下函数:
如果在onload中甚至在页面中调用它,它将用引用操作的响应替换id为“categories”的DIV。 |
![]() |
2
0
如果您真的想完全呈现另一个操作(例如,模拟一个通过整个RubyonRails堆栈的请求),可以使用 Webrat (检查) Webrat screencast 这里)。 在传统的MVC Web应用程序中,很少需要这样做。但以我的经验,发展索菲娅风格和 micro-architecture webapps 越来越普遍。 |
![]() |
3
-1
我不确定我完全理解你的问题陈述(为什么必须从这个角度来做),但我想你只要打电话
|
![]() |
Boucherie · 为Rails中的布局类实例变量选择控制器 6 年前 |
![]() |
james · 渲染多个部分时多次调用Rails yield 7 年前 |
![]() |
Sanjalee Patni · AngularJS:局部视图未渲染 7 年前 |
![]() |
MariusJ · 调用部分视图时JavaScript不工作 7 年前 |
![]() |
ribald · 基于自动完成选择加载局部视图 7 年前 |