我正在使用 Ruby 和 Sinatra 进行 Ajax 调用。查询应该返回多行,但它只返回一个。
ajax脚本是:
$(document).ready(function() {
$(".showmembers").click(function(e) {
e.preventDefault();
alert('script');
var short_id = $('#shortmembers').val();
console.log(short_id);
$.getJSON(
"/show",
{ 'id' : short_id },
function(res, status) {
console.log(res);
$('#result').html('');
$('#result').append('<input type=checkbox value=' + res["email"] + '>');
$('#result').append( res["first"] );
$('#result').append( res["last"] );
$('#result').append( res["email"] );
});
});
});
Ruby脚本是:
get '/show' do
id = params['id']
DB["select shortname, first, last, email from shortlists sh JOIN shortmembers sm ON sm.short_id = sh.list_id JOIN candidates ca ON ca.id = sm.candidate_id where sh.list_id = ?", id].each do |row|
@shortname = row[:shortname]
@first = row[:first]
@last = row[:last]
@email = row[:email]
puts @shortname
puts @first
puts @last
puts @email
halt 200, { shortname: @shortname, first: @first, last: @last, email: @email }.to_json
end
end
如果我直接在 postgres 上的终端中运行查询,我会返回 9 行,但是,如上所述,在我的网站上,它只返回第一行。
有什么问题?控制台没有错误,只有一条记录。