0

私の Rails 4 アプリケーションには、"new" アクションを持つコントローラー、items_controller.rb があります。

def new
  respond_to do |format|
    format.html
    format.js
  end
end

new.html.erb には、「#aaa」をクリックしたときに同じアクション「new」への ajax 呼び出しを開始する次のコードがあります。

<script>
  $(document).ready(function() {
    $("#aaa").click(function() {
      $.ajax({
        url: "/items/new",
        data: {},
        async: true,
        dataType: 'script'
      });
    });
  });
</script>

ここに new.js.erb があります:

$("#test_tag").html("qqq");

このコードは問題なく動作し、「#aaa」をクリックすると、期待どおりに「#test_tag」の html が「qqq」に変更されます。ここで、items_controller.rb で「htmlupdate」と言う別のアクションを使用して同じことをしようとすると、うまくいきません。私がすることは、ajax 呼び出し (私の new.html.erb 内) で URL を変更することだけです。

<script>
  $(document).ready(function() {
    $("#aaa").click(function() {
      $.ajax({
        url: "/items/htmlupdate",
        data: {},
        async: true,
        dataType: 'script'
      });
    });
  });
</script>

私のitems_controllerにメソッドhtmlupdateを作成します

def htmlupdate
  respond_to do |format|
    format.html
    format.js
  end
end

次の内容のファイル htmlupdate.js.erb を作成します。

$("#test_tag").html("qqq");

今、何も機能しません。何故ですか?私の url: ... 構文に何か問題がありますか? 本当にありがとうございました。

4

0 に答える 0