【发布时间】:2013-07-11 06:04:28
【问题描述】:
我有一个文件夹 views/home,其中包含 Rails 应用程序的初始屏幕。
对于某些用户,home.index.html.erb 显示包含工作订单列表的部分内容。
换句话说,我正在从 home/index.html.erb 获取工作订单列表和磨损任务列表 - 因此,我添加了代码以将 @workorders 和 @worequests 读取到家庭控制器中。
这是获取工单的代码:
<% @workorders.notcompl.each do |workorder| %>
家庭控制器包含此代码以获取工作订单:
def index
@workorders = Workorder.all
我想让 _agentopenrequests.html.erb 获取所有磨损的任务。 所以,我添加了以下内容来获取磨损的任务:
def index2
@worequests = Worequest.all
但是,在从 home/index.html.erb 文件执行的部分内容中,如何让下面的行使用 index2 而不是 index?
<% @worequests.notcompl.each do |worequest| %>
我应该将@worequests 和@workorders 都放入index 吗?
更新1
我尝试将家庭控制器更改为:
def index
@workorders = Workorder.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: Workorders3Datatable.new(view_context) }
end
@worequests = Worequest.all
respond_to do |format|
format.html # index.html.erb
end
end
但是,我明白了
DoubleRenderError - Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action.
更新2
将部分放在 wearquests 文件夹而不是 home 文件夹中是否更有意义 - 所以,使用 wearquests 控制器?
【问题讨论】:
-
很抱歉,但对我来说,您的要求并不是很清楚..
-
对于 UPDATE2,渲染部分时不会调用控制器。您可以将局部视图放在任何视图文件夹中。只要您从视图中调用正确的路径,它们就会呈现。
标签: ruby-on-rails