0

「Rails を使用したアジャイル Web 開発、第 3 版」に基づいて、Ajax でカートを作成しましたが、Ajax が機能しません。私のコードは次のとおりです。

/store/index.html.erb:</p>

<%= form_tag({:action=>'add_to_cart', :id=>product}, :remote=>true ) do %>
<%= submit_tag "Add to Cart" %>
<% end %>

/layouts/store.html.erb:</p>

<head>
...
<%= javascript_include_tag :defults %>
...
</head>

/controllers/store_controller.rb:</p>

def add_to_cart
...
respond_to do |format|
format.js
end
...
end

add_to_cart.js.rjs

page.replace_html("cart",:partial => "cart", :object=>@cart)

レール 3.1、ルビー 1.9.3。

4

2 に答える 2

0

Rails 3 では、js テンプレートは name.js.erb という名前になっています。

ajax呼び出しで「カート」divを置き換えるつもりで、jQueryがあると仮定しましょう。次のコードで add_to_cart.js.erb を作成します。

$("#cart").replaceWith('<%=escape_javascript(render :partial => 'cart', :object=>@cart) %>');
于 2012-04-18T09:58:27.457 に答える
0

RJS は Rails の一部ではなくなりました。追加のダウンロードを必要とせずに、代わりに jQuery を使用できます.rjs。最後に を使用しないでください。CoffeeScript を知っている場合は、こちらからも入手できます。ファイル*.coffeeに名前を付ければ完了です。また*.coffee.erb、ERb がファイルを前処理できるように名前を付けることもできますが、この機能は単純なファイルに対してもデフォルトで許可されています*.coffee

更新:

page.replace_html("cart",:partial => "cart", :object=>@cart)

次のようになる必要があります。

$("#cart").html("<%= j render(@cart) %>")
于 2012-04-18T09:14:54.860 に答える