kaminari 通过 ajax 分页,remote = true 不影响 Rails 3 中的视图
Posted
技术标签:
【中文标题】kaminari 通过 ajax 分页,remote = true 不影响 Rails 3 中的视图【英文标题】:kaminari paginate via ajax ,remote = true is not affect on view in rails 3 【发布时间】:2014-08-14 15:33:22 【问题描述】:您好,我正在使用 kaminari gem 进行分页,我想通过 ajax 进行分页。
index.html.haml
#abc
= render :partial => 'anything/anything_lists', collection: @anything_upcoming, as: :anything_schedule
#paginator
= paginate @anything_upcoming, :remote => true, :param_name => "anything_upcoming_page"
index.js.haml
$('#abc').html('#escape_javascript render(partial: "anything/anything_lists")');
$('#paginator').html('#escape_javascript(paginate(@anything_upcoming, :remote => true, :param_name => "anything_upcoming_page").to_s)');
控制器文件:
@anything_upcoming = AnythingSchedule.anything_upcoming.page(params[:anything_upcoming_page]).per(Settings.pagination.per_page)
respond_to do |format|
format.js
format.html
end
查看源代码显示 data-remote = true 但日志将 Website::EventsController#index 显示为 HTML。 所以我在这里缺少什么。
编辑:我正在对 js 文件进行一些实验,并将 index.js.haml 转换为 index.js.erb,并且只有一次我收到 ajax 请求,并且还显示在日志上调用 JS。然后我像往常一样重做一次,没有收到 ajax 请求。
最终编辑 应用程序.js
//= require jquery
//= require jquery_ujs
//= require ckeditor-jquery
//= require bootstrap.min
//= require bootstrap-datepicker.min
//= require bootstrap-timepicker.min
//= require chosen.jquery.min
//= require jquery.popupoverlay
//= require common
//= require ace-elements.min
//= require registrations
//= require courses
//= require instructors
//= require jsapi
//= require donation
//= require workshops
//= require nav_settings_dropdown
//= require events
//= require event_schedules
//= require manage_home
//= require jquery.blockUI
//= require rails
宝石文件
gem 'rails', '3.2.17'
gem 'haml'
gem 'haml-rails'
gem "rails_config", "~> 0.3.3"
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
gem 'jquery-fileupload-rails'
gem 'jammit'
end
gem 'jquery-rails'
gem "kaminari", "~> 0.14.1"
【问题讨论】:
【参考方案1】:你一定忘记在你的布局文件中包含application.js
或
您正在使用另一个 js 或布局,然后是默认的。请检查这个
原因:
分页的语法是正确的
= paginate @anything_upcoming, :remote => true, :param_name => "anything_upcoming_page"
您还包含了jquery-rails
gem,还包含了application.js
中的库
你说data-remote = true
正在应用于元素。所以我猜剩下的唯一问题是上面一个。
【讨论】:
以上是关于kaminari 通过 ajax 分页,remote = true 不影响 Rails 3 中的视图的主要内容,如果未能解决你的问题,请参考以下文章