2013-02-14 47 views
0

我尽量让为网络商店基于Ajax的解决方案。 所以我有购物车,当用户添加一些东西时,我不想让所有页面都重新加载,但只有“购物车”模板。 (行项目属于车) 订单项中创建方法:的Javascript Rails的模板不能正常工作

#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文件/视图/ line_items

因此,这里的问题。

其实它的工作原理。但是当我点击“添加到购物车”按钮时,没有任何变化,直到我重新加载页面。

在服务器日志显示:

Rendered line_items/create.js (0.0ms) 

0.0ms - 因为肯定意味着什么是错的,但我不能figuare了这一点。看起来铁轨只是打开它,什么都不做。

可能是什么原因?

守则create.js

page.replace_html('cart' , render(@cart)) 
+0

才有可能看到Ajax调用你与成功制作功能一起? – 2013-02-14 11:42:55

+0

我是相当nooby,所以不知道我得到正确的,你想看到 – 2013-02-14 11:54:33

+0

<%= button_to'加入购物车',line_items_path(:product_id => product), :remote => true%> – 2013-02-14 11:55:19

回答

0

所以.js文件/ .rjs模板不导轨> 3.0的工作,应该是.js.erb

0

你仍然需要编写实际的Ajax请求的JavaScript或jQuery来调用控制器上的方法来更新显示。

红宝石是一个服务器端语言,所以你需要做一个AJAX调用服务器,让你想用它来更新你的页面的数据。

检查这post出来,他们似乎在做类似你是什么,可能是有些用处的东西。如果你不确定什么阿贾克斯是看看这个link

希望这有助于一些。

+0

其实麻烦的是,我用Rails的前一个版本的教程,之前他们强迫jq而不是通用js – 2013-02-15 10:08:41