使用AJAX重新加载部分视图不工作

问题描述:

我想排序列而不重新加载页面,我试图使用Ajax,但它不工作。使用AJAX重新加载部分视图不工作

welcome_controller.rb

def index 
    @keyword = params[:keyword] 
    @category = params[:category] 

    @search = HrCurriculumIntern.search(params[:search]) 
    @hr_curriculum_interns = @search.all 

    respond_to do |format| 
    format.js 
    format.html 
    end 
end 

视图/欢迎/ index.html.erb

<% title %> 

<div class="container"> 
    <ul class="tabs" data-tabs data-toggle="tab"> 
<li class="active"><a href="#main"><%= t('labels.main') %></a></li> 
<li><a href="#interns"><%= t('labels.interns') %></a></li> 
<li><a href="#analysts"><%= t('labels.analysts') %></a></li> 
</ul> 

<div class="tab-content"> 
<div id="main" class="active"> 
    <%= render "search" %> 
</div> 

<div id="interns" > 
    <%#= render "hr_curriculum_interns/hr_curriculum_interns_filter" %> 
    <%= render "hr_curriculum_interns/table_hr_curriculum_interns" %> 
</div> 

<div id="analysts" > 
    <%= render "hr_curriculum_systems_analysts/table_hr_curriculum_systems_analysts" %> 
</div> 

在视图/欢迎/ index.js.erb的

$("#table_hr_curriculum_interns").html("<%=escape_javascript(render("hr_curriculum_interns/table_hr_curriculum_interns")) %>"); 

vi EWS/hr_curriculum_interns/_table_hr_curriculum_interns.html.erb

<%= stylesheet_link_tag "bootstrap" %> 
<%= javascript_include_tag "bootstrap-tabs" %> 

<div class="container"> 
<%= new_button HrCurriculumIntern.new, [:new, :hr_curriculum_intern] %> 
    <table class="zebra-striped"> 
     <thead> 
     <tr> 
    <th><%= sort_link @search, :date_interview, t('attributes.date_interview') %></th> 
    <th><%= sort_link @search, :name, t('attributes.name') %></th> 
    <th><%= sort_link @search, :college, t('columns.college') %></th> 
    <th><%= sort_link @search, :major, t('columns.major') %></th>  
    <th><%= sort_link @search, :answer_sent, t('columns.answer_sent') %></th> 
    <th></th> 
    <th></th> 
    <th></th> 
    </tr> 
</thead> 
<tbody> 
    <%# @hr_curriculum_interns = HrCurriculumIntern.all %> 
    <% @hr_curriculum_interns.each do |hr_curriculum_intern| %> 
    <tr> 
     <td><%= display_date(hr_curriculum_intern.date_interview) %></td> 
     <td><%= smart_truncate(hr_curriculum_intern.name) %></td>  
     <td><%= smart_truncate(hr_curriculum_intern.college) %></td> 
     <td><%= smart_truncate(hr_curriculum_intern.major) %></td> 
     <td><%= hr_curriculum_intern.answer_sent %></td> 
     <td><%= show_icon hr_curriculum_intern, hr_curriculum_intern, "data-default-action" => true %></td> 
     <td> <%= edit_icon hr_curriculum_intern, edit_hr_curriculum_intern_path(hr_curriculum_intern) %></td> 
     <td><%= link_to image_tag('icons/destroy.png'), hr_curriculum_intern, method: :delete, data: { confirm: t('messages.are_you_sure') } %></td> 
    </tr> 
    <% end %> 
</tbody> 

这不是workinks,当我在任何列名点击,页面重新加载。 有什么问题?

+0

在Chrome网络(XHR)标签页中打开并查看服务器响应。你在那看到什么? –

+0

我从来没有用过:PP,非常酷,它是:请求URL:http://0.0.0.0:3000 /?搜索[meta_sort] = date_interview.asc 请求方法:GET? –

+0

分享'''sort_link'''帮手方法片段 –

为什么您只需要执行AJAX请求就可以重新排序数据?为什么不直接排序并使用客户端JS重新显示它?

有几个Railscasts的,这将告诉你如何做到这一点:

http://railscasts.com/episodes/340-datatables

http://railscasts.com/episodes/228-sortable-table-columns

+0

我使用教程228-sortable-table-columns \ o /,我也会尝试使用340。 O / –