0

在我的 Rails 4 应用程序中,我有一个控制器 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 调用中的 url(在我的 new.html.erb 中):

<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