次のAJAXコードがJavaScriptに埋め込まれています。
$.ajax({
type: 'POST',
url: '/books',
data: {'book[author]':tags[i].book.author, 'book[edition]':tags[i].book.edition, 'book[title]':tags[i].book.title, 'book[url]':newBookUrl},
dataType: 'json',
async: false,
success: function(data){
mapcode+=" href='javascript:lightbox("+data+")' />";
alert(mapcode);
},
fail: function(){mapcode+=" href='' onclick='return false;' />";
alert(mapcode);}
});
このモデルのcreateメソッドを呼び出しています。
def create
book = Book.new(params[:book])
if (Book.find_by_url(book.url))
book = Book.find_by_url(book.url)
else
book.save
end
book.users << current_user
render :json => book.url
end
何らかの理由で、成功コールバックも失敗コールバックもトリガーされていません。それ以外の場合、AJAXは機能しているようです。新しいデータがデータベースにアップロードされ、Firebugによると、book.urlがJSONで返されます。ここで何が起こっているのか分かりますか?