私の 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: ... 構文に何か問題がありますか? 本当にありがとうございました。