我正在使用Sinatra,Ruby和Postgres。我想要页面(目前正在尝试使用will_paginate,但欢迎使用替代方法建议)结果。
红宝石代码是:
get '/inplay' do
results = DB["select distinct(concat(c.first,' ', c.last)) as candidate, c.id as id, s.shortname as shortname from candidates c, shortmembers sm, shortlists s where sm.short_id = s.list_id and c.id = sm.candidate_id"].map do |row|
{ :id => row[:id], :candidate => row[:candidate], :shortname=>row[:shortname] }
end
halt 200, results.to_json
end
,视图页面中的jquery是:
$(document).ready(function() {
alert("script");
$('#result').html('');
$.getJSON("/inplay", function(data) {
$.each( data, function( key, value ) {
$('#result').append('<tr><td style=\"background:#E3F6CE;\"><input type=\"checkbox\" id=\"case\" class=\"case\" value=' + this["id"] + '></td><td><a href=\"/edit/' + this["id"] + '\">' + this["candidate"] + '</a></td><td>' + this["shortname"] + '</td></tr>');
});
});
});
这很好用,可以生成一张漂亮的桌子。问题是我包括:
page = params.fetch "page", 1
per_page = params.fetch "per_page", 10
在ruby代码段中添加
.paginate(page.to_i, per_page.to_i)
它不再起作用,当然也不会页面。
在我尝试的视图中:
<%= will_paginate results %>
我还在ruby数据库调用之后立即包含了DB.extension(:pagination)。
问题是:
我被困住了。所有的帮助都高兴地收到了。