【发布时间】:2013-10-29 08:19:50
【问题描述】:
单击 loadmore div 时,我正在尝试加载更多 cmets。当我单击 Loadmore 时,此代码渲染的值与我最初渲染的相同。例如,如果我最初渲染 10 cmets,当我单击 load more 时,它会渲染相同的 10 cmets。
在 index.html.erb 中
<div class="main-content"><%= render :partial => 'comment' %></div>
<div class="loadmore" onclick="send()">Loadmore</div>
在 _comment.html.erb 中
<% @comments.each do |comment| %>
<%= comment.comments %>
<%= end %>
在我的控制器中
@comments = Comment.paginate(:per_page => 10, :page => params[:page]).all(:order => 'updated_at DESC')
respond_to do |format|
format.html # index.html.erb
format.json { render json: @comments }
end
在 JavaScript 中
function send(){
$.ajax({
url: '<%= escape_javascript comments_path(:page =>(@comments.current_page)+1) %>',
type: 'GET',
dataType: 'json',
success: function(){
$(".main-content").append("<%= escape_javascript render :partial => 'comment' %>");
}
});
}
如果代码有误,请向我推荐正确的代码。
【问题讨论】:
-
我想@cmets.current_page 在您单击按钮时执行,因此它检查页面参数并且它仍然相同,它是空的。每次单击按钮时尝试更新 div#loadmore 属性中的 data-page 属性
-
但我的页面参数传递为 2,我的日志中的查询格式也是正确的,但它附加了相同的值
-
当您单击按钮时,您能否显示发送到服务器的实际参数和执行的 SQL 查询?
-
参数
{"page"=>"2", "amp"=>nil},查询SELECT "comments".* FROM "comments" ORDER BY updated_at DESC LIMIT 10 OFFSET 10 -
以及下次点击时,参数和sql请求是什么?
标签: javascript jquery ruby-on-rails ajax