【问题标题】:JS for render partials, how not to reload the page?用于渲染部分的 JS,如何不重新加载页面?
【发布时间】:2014-01-16 13:57:55
【问题描述】:

我有一个包含 3 个选项卡、详细信息、实习生和分析师系统的主页。

在实习生选项卡中,我有一个表,analyst_system 表也是如此。

我想要两个表的可排序列,所以我使用了 gem“meta_search”。工作正常,但我的问题是当我单击列名时,页面重新加载并转到详细信息选项卡。

所以,我需要使用 JS,对吗? 我正在寻找教程,但我的代码不同,我正在使用渲染部分。

--controller
----welcome_controller.rb
----hr_curriculum_interns_controller.rb
...
views
--welcome
----index.html.erb
--hr_curriculum_interns 
----_table_hr_curriculum_interns.html.erb

app/controller/welcome_controller.rb

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

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

查看/欢迎/索引

  <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>

app/views/hr_curriculum_interns/_table_hr_curriculum_interns

<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>

当我对任何列进行排序时,页面不重新加载怎么办?

对不起我的英语:PP

【问题讨论】:

    标签: jquery ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    我建议使用 gem 'data_table' 而不是 gem "meta_search" ! 这将涵盖您所需的所有内容,例如:

     pagination
     sorting
     searching
    

    由于上述功能在内部由 Javascript 管理,因此;在排序/搜索时,它只更新表格部分,而不是加载完整的页面。

    按照这个: http://railscasts.com/episodes/340-datatables

    【讨论】:

    • 谢谢,我会用那个=]
    猜你喜欢
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多