0

我尝试为网上商店制作一个基于 Ajax 的解决方案。所以我有购物车,当用户添加一些东西时,我不想重新加载所有页面,而只想重新加载“购物车”模板。(Line Item 属于 Cart) Line Item 中的创建方法:

#usualstuff
respond_to do |format|
if @line_item.save
format.html { redirect_to(store_url) }
format.js
format.xml { render :xml => @line_item,
:status => :created, :location => @line_item }
else
...

将 create.js 文件放入 /views/line_items

所以这就是问题所在。

实际上它有效。但是当我单击“添加到购物车”按钮时,没有任何变化,直到我重新加载页面。

显示服务器日志:

Rendered line_items/create.js (0.0ms)

0.0ms - 肯定意味着有问题,但我无法弄清楚这一点。看起来rails只是打开它,什么也不做。

可能是什么原因?

create.js 中的代码

page.replace_html('cart' , render(@cart))
4

2 回答 2

0

您仍然需要在 javascript 或 jquery 中编写实际的 ajax 请求来调用控制器上的方法来更新显示。

ruby 是一种服务器端语言,因此您需要对服务器进行 ajax 调用以获取您希望用于更新页面的数据。

看看这篇文章,他们似乎在做一些与你类似的事情,这可能会有一些用处。如果您不确定 ajax 是什么,请查看此链接

希望这有所帮助。

于 2013-02-14T22:45:54.233 回答
0

所以 .js/.rjs 模板在 rails >3.0 中不起作用,应该是 .js.erb

于 2013-02-15T10:15:35.157 回答