イメージとしては商品検索のアプリケーションのようなもので、フォームに入力されたテキストを含む商品名と、そのイメージURLをデータベースから検索し、結果を表示する、といったものです。firebugではエラー表示がないので、cgi出力の形式やjQueryのレスポンスの受け方、表示の部分に問題があると推測しているのですが、何処が間違っているのか解りません。レスポンスがあるので、データベース検索の処理もうまくいっています。
コードをgistに貼付けたので、お手数ですがこちらをご覧になって頂き、ご指摘頂けませんでしょうか?
READMEファイルに補足情報を記載しています。
html,javascript→https://gist.github.com/2317913
cgi(Ruby) →https://gist.github.com/2317927
README →https://gist.github.com/2317970
何卒宜しくお願いします。
ajax_db.rb の以下のくだり
print cgi.header({ "charset"=>"UTF-8" })
cgi.out("application/json") {res.to_json}
の二行を、こう、かな。
cgi.out ({ "type" => "application/json", "charset" => "UTF-8" }) { res.to_json }
CGI クラスの out メソッドのソース。
https://github.com/ruby/ruby/blob/trunk/lib/cgi/core.rb
def out(options = "text/html") # :yield: options = { "type" => options } if options.kind_of?(String) content = yield options["length"] = content.bytesize.to_s output = stdoutput output.binmode if defined? output.binmode output.print header(options) output.print content unless "HEAD" == env_table['REQUEST_METHOD'] end
out メソッドの中で print header されているので、ヘッダが二重にレスポンスとして返り、json 形式にならなくなってるのが、きちんと動かない原因。
あるいはfirebugのコンソールでJSONタブを開いてみた時、JSONになってますでしょうか?