Ruby と Sinatra を使用して、Ajax 呼び出しを行っています。クエリは複数の行を返す必要がありますが、1 つしか返されません。
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 行が返されますが、上記のように私の Web サイトでは、最初の行のみが返されます。
どうしたの?コンソールにエラーはありません。レコードは 1 つだけです。