在我的 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: ... 语法有问题吗?我真的很感谢你的帮助。