【发布时间】:2015-04-16 06:49:50
【问题描述】:
我在模型Page 的视图上有一长块cmets。我没有在页面加载时显示所有 cmets,而是尝试创建一个“查看更多”按钮来显示接下来的十个 cmets。按钮向控制器发送一个 ajax 请求,然后控制器使用 jquery 呈现这个块:
_view_more.html.erb
<% comments.each_with_index do |comment, index|%>
<% if (( index > @start_number) && (index < @end_number) ) %>
<%= comment.text %>
<% end %>
假设我总是想显示接下来的 10 个 cmets。我会设置@start_number = @start_number + 10 和@end_number = @end_number + 10
在控制器中,但实例变量被重置,所以@start_number 将为零。如何设置一个在每次 ajax 请求时增加 10 的变量?
“查看更多”按钮
<%= link_to "view more", view_more_page_path, remote: true %>
pages_controller.rb
def view_more
@page = Page.find(params[:id])
respond_to do |format|
format.html { redirect_to root_path }
format.js
end
end
view_more
$("#comments-body").append("<%= escape_javascript(render 'view_more') %>");
【问题讨论】:
-
我知道这并不能回答您的问题,但是您确定您不想只在客户端跟踪并使用 ajax 发送开始和(如有必要)结束索引请求?
-
@JMM 我没有考虑过。我怎么能这样做?
标签: javascript jquery ruby-on-rails ajax instance-variables