1

私のjquery投稿には、このようなコードがあります

function checkBill(trs_id, bill_id){
    $.ajax({
      type: 'POST',
      url: "/check_bill",
      data: {bill_id: bill_id, transaction_id: trs_id},
      headers: {
        'X-CSRF-Token': '<%= form_authenticity_token.to_s %>'
      },
      dataType: 'script'
    });
  }

コントローラーでjquery投稿のパラメーターを正常に取得しましたが、ログにテンプレートが見つからないというエラーが表示されますか? どうしてか分かりません?jqueryの投稿にはテンプレートは必要ないと思います

4

2 に答える 2

1

欠落しているテンプレートは、基本的に、views フォルダーにcheck_bill.js.erbがないことです。


ビューと Ajax

サーバーがリクエスト (HTTP または Ajax) を受信すると、アクションを実行して必要なビューをレンダリングすることにより、それを処理します。

action_name.html.erbRails を使用すると、HTML および JS ビューをレンダリングできますaction_name.js.erb。したがって、JS リクエストを送信している場合、Rails は .js.erb をレンダリングしようとします。


JS リクエストを返す

JS リクエストを返したい場合は、他の回答に記載されているコードを使用する必要があります ( respond_to):

#app/controllers/your_controller.rb
def check_bill
    respond_to do |format|
        format.js { render :nothing => true } 
    end
end

違いは、何を Ajax に戻すかです。予想される応答の種類をお知らせいただければ、回答を更新します

于 2013-11-12T09:25:32.777 に答える
0

js で応答するようにコントローラー アクションに指示を与える必要があります。このような:

 respond_to do |format|
   format.js {render :text => 'ok'}
 end

それ以外の場合は、html ビューで応答しようとします。

于 2013-11-12T08:09:31.247 に答える