Ruby on rails 如何在rails中显示一定数量的数组项
我有一个数组,我想一次只显示4个项目,当我单击Next时,它将显示接下来的4个项目。 查看代码:Ruby on rails 如何在rails中显示一定数量的数组项,ruby-on-rails,ruby-on-rails-3,json,jquery,coffeescript,Ruby On Rails,Ruby On Rails 3,Json,Jquery,Coffeescript,我有一个数组,我想一次只显示4个项目,当我单击Next时,它将显示接下来的4个项目。 查看代码: <table> <tr> <th></th> <th>3</th> <th>2</th> <th>1</th> <th>1</th> <th>2</th> <th>3</th>
<table>
<tr>
<th></th>
<th>3</th>
<th>2</th>
<th>1</th>
<th>1</th>
<th>2</th>
<th>3</th>
<th></th>
</tr>
<% count = 0 %>
<% while count < 4%>
<tr class="match_row" value="<%=count%>">
<th id="left_competitor"><%= @matches[count][0].title %></th>
<% (1..6).each do |i|%>
<th> <input type="radio" class="group_<%=count%>" name="<%=count%>" value="<%= i%>"><br></th>
<% end %>
<th id="right_competitor"> <%= @matches[count][1].title %></th>
</tr>
<br />
<% count += 1 %>
<% end %>
<br />
</table>
<input id="save_votes" type="button" value="Next">
我的想法是让view()中的变量count取一个变量的值,而不是0,但我不知道怎么做。
有什么想法吗?这看起来像是视图模板中的很多逻辑,让我想起了PHP 也许你可以看看这个:
Ryan使用Gem处理分页(查找Kaminari或WillPaginate),然后使用无阻碍的jQuery处理AJAX组件 您的问题并不完全清楚您遇到了什么问题,但我猜这与代码有关
$.ajax({
type: "POST"
url: "projectss/pca_results"
data: "data=" + data
})
location.reload(true);
它向服务器发送可能更改页面内容的请求,然后立即刷新页面而不等待响应。这里有一个竞争条件:有时页面会在内容更新之前刷新,有时在内容更新之后刷新。你应该改为写信
$.ajax({
type: "POST"
url: "projectss/pca_results"
data: "data=" + data
success: -> location.reload(true);
})
确保仅在处理更新后才刷新页面。或者,更好的方法是编写一个
success
回调,随时更新页面上的HTML,而不是刷新整个页面。您的用户将感谢您。您不需要在代码中使用do(i)->
和do(j)->
。您只需使用do(x)->
语法即可捕获内部函数引用的值。感谢回复:)。现在我可以显示任意多的项目,但我想在显示下一个项目之前执行一些代码。让我解释一下:我显示了两个想法和6个单选按钮,用户点击一个单选按钮来选择他最喜欢的想法。我想在移动到下一个4之前保存这4个匹配的结果。您知道怎么做吗?您可能希望使用处理分页的相同javascript函数(在$.getScript之前),并向控制器上的save方法发送另一个AJAX请求,而不是处理保存。只需编写另一个执行的Javscript函数,从DOM中提取要保存的值,然后将它们发送到控制器。您能告诉我如何知道我在最后一页吗?在WillPaginate中,如果您对诸如@matches之类的对象进行分页,您应该能够执行“@matches.page_count”。在视图模板中,您可以检查total_entires是否与params[:page]匹配,如果匹配,则放入Javascript钩子以运行最终的jQuery“@matches.page_count”不起作用,我遇到了以下错误:未定义的方法“page_count”for#。但实际上,我所需要的只是参数。现在它工作了,谢谢。实际上我使用了Blake建议的Gem WillPaginate,它工作了,但是现在我不能在显示下一个项目之前执行CoffeeScript代码
$.ajax({
type: "POST"
url: "projectss/pca_results"
data: "data=" + data
success: -> location.reload(true);
})