0

基于'Agile Web Development with Rails,第三版',我用 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 中,Node.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 回答