我正在使用带有AJAX的gem Kaminari。 AJAX部分工作正常。但是,当我在我的控制器中说 .per(3)时,它会返回每个对象的时间3.所以当我有9个食谱时,它会返回27个食谱(制作副本)。当我说 .per(1)时,我只会得到唯一的对象,但我不希望每个对象都有一个新的页面。
请帮我解决这个问题。提前谢谢。
我的控制器:
class RecipesController < ApplicationController
skip_before_action :authenticate_user!
def index
if params[:search]
@recipes = Recipe.search(params[:search]).order('created_at DESC').page(params[:page]).per(3)
else
@recipes = Recipe.order('created_at DESC').page(params[:page]).per(3)
end
end
end
我的观点:
<div class="container is-medium" id="product-recipe">
<%= render @recipes %>
</div>
<% if @recipes.present? %>
<div class="apple_pagination" id="paginator">
<%= paginate @recipes, :remote => true %>
</div>
<% end %>
index.js.erb的:
$('#product-recipe').html('<%= escape_javascript render(@recipes) %>');
$('#paginator').html('<%= escape_javascript(paginate(@recipes, :remote => true).to_s) %>');
答案 0 :(得分:0)
我找到了解决方案。对于将来可能遇到同样问题的人。
在我的食谱中,我有@ recipes.each do | recipe | .... 这就是问题,删除该行修复了重复的问题。