現在、コントローラーでこれを使用しています
respond_to do |format|
format.html { render :js => alert('example') }
end
そして、これは私のapplication.jsにあります
$(document).ajaxSuccess( function(event, xhr, settings) {
if ( settings.url == '/example' ) {
eval(xhr.responseText)
} else if ( settings.url.match(/[\/example\/\d]+$/)) {
eval(xhr.responseText)
loadComplete()
} else {
(etc)
}
})
ajax レスポンスで JS を返し、ブラウザに実行させる。これは、考えられる各応答に対応するために新しい .js.erb ファイルを作成する必要がないようにするためです。
これを行うより良い方法はありますか?ファイルの数を減らすのはいいことだと思っていましたが、ajaxSuccess settings.url で正規表現を使用して JS 応答を分離する必要があるのはかなりひどいです。