的术语在问题有点困惑。如果在控制器中,并且您想要在另一个控制器的另一个操作方法中执行代码并呈现其模板,则应该redirect_to该操作。比方说,另一个控制器被称为ContractsController
redirect_to :controller => "contracts", :action => "show_home_page"
如果你只是想使用的视图模板从另一个方法,从动作的响应,你只需要在渲染参数的前缀控制器的名称。这不会调用该操作,它只会使用其模板。
例如,如果模板位于合同控制器的文件夹中。
render :action => "/contracts/show_home_page", :layout=> false
我认为在这种情况下,你实际上是在谈论一个部分,它看起来像
render :partial => "/contracts/show_home_page"
然而,我看到你在这里抓的是,你真的想调用多个动作方法来呈现单个页面。这不是它的工作原理。您将不得不设置模板将在单个操作中引用的对象。这是大多数Rails开发人员在模型中放置大量代码的原因之一,因此设置不会在控制器中重复。
但还有另一种方式...其中的JavaScript魔术进来
在您的网页,创建这样一个功能:如果你调用在
<script type="text/javascript" language="javascript">
function load_categories() {
<%= remote_function(:url => {:controller => "categories", :action => "list"},
:update => "categories")%>
};
</script>
即使你的页面已经打开,它会用来自引用操作的响应来替换id为“categories”的div。
引用:“我对rails很新,我对框架还没有100%的自信。” - 我对rails并不陌生,但是当我认为我理解了某些东西,那么我错了,一个更好的解决方案或新的rails版本;-) – halfbit 2015-08-10 18:35:06