我有一个模型(嵌套)的索引视图,它永远不会从模型中调用,而是从几个不同的模型中呈现。一个视图可以使用JS或html呈现索引。使用JS是在show视图中的#related div和数据远程链接。另一个选项使用相同的控制器操作来呈现它只有html。
一切都很好,直到我加入Kaminari分页。在整页视图中,没有#related div,因此分页不起作用。我将内脏分成了一个部分并添加了一个#related div并渲染了部分内容。从js我刚刚从JS渲染部分。这在整个页面视图中运行良好,但在显示页面中它将呈现部分,但链接不起作用,看起来它呈现整个显示页面。在另一个选项卡上关闭,然后返回到“进度”选项卡,加载部分和所有工作正常。只是在显示页面的初始加载时,我无法使页面链接起作用。
我可以加载另一个不首先使用分页的选项卡并解决我的问题,但这是您转到此页面的主要信息。
有什么想法吗?
编辑代码请求
控制器动作方法。此控制器中的索引方法还设置@progressions
def progressions
authorize! :read, Progression
@stage = Stage.find(params[:id])
@progressions = @stage.progressions_by_score.page(params[:page]).per(20)
if params[:status] && !params[:status].blank? && @progressions
@progressions = @progressions.where(status: params[:status]).page(params[:page]).per(20)
end
respond_to do |format|
format.js
format.html {render :template => "progressions/index"}
end
end
阶段视图中的progressions.js.erb文件
$("#related").html("<%= escape_javascript(render('progressions/index'))%>");
show view中的关系div。这几乎是我的脚手架模板,我显示或链接到相关信息。 <div id="related">
是任何日期远程链接将加载数据的位置。在初始加载时,它会加载_index partial。
<div class="relations">
<span class="navspan">
<%= link_to 'Progressions: Status ->', progressions_stage_path(@stage), :'data-remote' => true,
:onclick => '$("#progression_status").val("")' %>
<span class="huh">
<%= hidden_field_tag :stage_id, params[:id]%>
<%= select_tag :progression_status, options_for_select(Progression.statuses["all"], params[:status]),
:prompt => 'All', :class => 'f-left' %>
</span>
<%= link_to 'Assessors', assessors_stage_path(@stage), :'data-remote' => true %>
<%= link_to 'Events', events_stage_path(@stage), :'data-remote' => true %>
<%= link_to 'Select', select_stage_path(@stage) if can? :select_candidates, @stage %>
<%= link_to 'Ad Mgmt', edit_ad_stage_path(@stage) if can? :manage_ad, @stage %>
</span>
<div class="f-clear"></div>
<div id="related">
<%= render "progressions/index"%>
</div>
</div>
index.html.haml文件
#related
= render "progressions/index"
_index.html.haml文件只是一个列出进度的索引表,但确实包含:
= paginate @progressions, :remote => true
答案 0 :(得分:0)
发布一些代码后不久,我回到我的记忆中并使用javascript加载相关的div。我试图远离javascript,但在这种情况下,我在将:id => "status_id"
添加到进度链接后将其添加到页面的末尾:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$("#status_link").trigger("click");
})
</script>
虽然这解决了我的问题,但我仍然不明白为什么初始的html响应不响应相关div中的页面链接。我会把它作为别的东西来学习。在我弄清楚如何仅在显示页面的初始加载时起火时,我会把它放在coffescript中。