我有一个Home
带有 2 个引导选项卡的页面。我在使用第二个选项卡时遇到问题。我正在尝试呈现工单列表。对于该列表,我使用的是 dataTables 和 ajax。
我的问题是 workorders/index7.html.erb 作为独立页面可以正常工作。但是,我想在主页的引导选项卡中使用它。
对于我所有的其他 Bootstrap 选项卡列表,我使用的是同一控制器中的部分。但是,在这种情况下,我需要使用来自Workorder
控制器而不是Home
控制器的视图。
这是我在Home
视图中尝试的代码:
<div class="tab-pane" id="tab2">
<%= render "workorders/index7" %>
</div>
该代码给了我:
Missing partial workorders/index7
为什么?如果我将文件名更改为 _index7.html.erb 代码将不会执行以获取 json。
但是,因为它是部分的,从 开始_
,与 Workorder 控制器代码的连接index7
不起作用。我也在_index7
Workorder 控制器中尝试过。
Workorder
控制器有这个代码:
def index7
@workorders = Workorder.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: Workorders3Datatable.new(view_context) }
end
end
该代码使用一个名为workorders3_datatable.rb
通过 ajax 获取数据并将其格式化为 dataTables 的文件。
问题:
1)我必须在Home
标签中使用部分吗?或者有没有办法在选项卡中呈现一个名为 workorders/index7.html.erb 的文件?
2) 为什么 index7.html.erb 使用 index7 的控制器代码,而部分 _index7.html.erb 在控制器中调用 _index7 时不会使用代码?
3)我读到这个“渲染只会渲染视图,它不会运行与之关联的动作。” - 真的吗?
感谢您的帮助 - 我知道这很令人困惑。
红土
更新 1
该视图作为 workorders/index7 运行良好 - 但是,如果我将其更改为部分并将其放入 tab = workorders/_index7 - index7 的控制器代码似乎没有执行。