0

現在、コントローラーでこれを使用しています

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 応答を分離する必要があるのはかなりひどいです。

4

1 に答える 1