嗨,我是ruby和rails 4的新手。
我正在尝试使用kaminari gem在一个页面中进行多个分页。
我创建了服务页面,我在水平标签菜单中显示不同的服务,部门我在标签菜单中有三个选项。
当我点击标签时,它会显示其详细信息及其分页详细信息。现在的问题是,只有当我双击分页链接时,分页才有效。
任何人都可以帮我解决我的代码中出现的问题: -
在服务控制器中: -
def index
if params[:search]
@search_state_services=Service.where('sname LIKE ? AND scategory = ?', "%#{params[:search]}%", '2').page(params[:page]).order(:sname)
@search_nat_services=Service.where('sname LIKE ? AND scategory = ?', "%#{params[:search]}%", '1').page(params[:page]).order(:sname)
@search_servic_services=Service.where('sname LIKE ? AND scategory = ?', "%#{params[:search]}%", '3').page(params[:page]).order(:sname)
else
@nat_services=Service.where(scategory: 1).page(params[:page]).order(:sname)
@state_services=Service.where(scategory: 2).page(params[:page]).order(:sname)
@servic_services=Service.where(scategory: 3).page(params[:page]).order(:sname)
@services = Service.page(params[:page]).order(:sname)
end
respond_to do |format|
format.html
format.js
end
在索引视图中: -
<ul id="tabs">
<li><a href="#national">National</a></li>
<li><a href="#state">State</a></li>
<li><a href="#services">Services</a></li>
</ul>
<div id="content">
<div id="national" class="tab-section">
<p>
<%= render 'nat1' %>
</p>
</div>
<div id="state" class="tab-section2">
<p>
<%= render 'state1' %>
</p>
</div>
<div id="services" class="tab-section">
</div>
</div>
<script >
$(function() {
$('#tabs').find('a').click(function(e) {
e.preventDefault();
$(this.hash).show().siblings().hide();
}).filter(':first').click();
});
</script>
在nat1中: -
<h2 style="border-bottom:0px;color:black;">
<a name="t1" id="t1">National </a>
</h2>
<% @nat_services.each do |nservice| %>
<div style="display:inline-block;">
<p style="background:lightgrey; padding-top: 5px;padding-right: 5px;padding-bottom:5px;padding-left: 5px;">
<%= link_to "#{nservice.sname}", service_path(nservice.id) %>
</p>
</div>
<% end %>
<div class="nat_1" style="text-align:center;color:black;">
<%= paginate @nat_services, :remote => true %>
</div>
在索引js中: -
$(document).ready(function () {
$('div.nat_1').bind('click', function(e) {
e.preventDefault();
$(this).addClass('selected');
$('div#national').html('<%= escape_javascript render 'nat1' %>');
$('.nat_1').html('<%= escape_javascript(paginate(@nat_services, :remote => true).to_s) %>');
return false;
});
$('div.state_1').bind('click', function(ev) {
ev.preventDefault();
$('div#state').html('<%= escape_javascript render 'state1' %>');
$('.state_1').html('<%= escape_javascript(paginate(@state_services, :remote => true).to_s) %>');
});
});
任何指针都将受到赞赏。
提前致谢