我想为我的 Rails 应用程序添加一些 AJAX 功能,但不知道从哪里开始。
这是将商品添加到订单的方法:
def add_item_to_order
if session[:order_id].nil?
@order = Order.new #Don't create an order until there is an item to be added to it.
@order.account_id = session[:user_id]
else
@order = Order.find(session[:order_id])
end
item = Item.find(params[:id])
o_item = OrderItem.new
o_item.item_id = item.id
@order.order_items << o_item
@order.total += item.sale_price
@order.save
session[:order_id] = @order.id
redirect_to order_home_path
end
这在用户点击时运行:
<%= link_to item.name, add_item_to_order_path(item.id), :class => "fixed medium green button"%>
谁能给我任何关于如何开始的提示,以便通过 AJAX 将商品添加到订单中?
最佳答案
检查如何
render
javascript。在正常的请求中,人们会重定向到某些操作或呈现某些 View 等,对于XHR
(XmlHttpRequest
),您可以通过服务器render
javascript-将呈现的单面 js 模板。您将不得不使用为 Rails-3 提供的LegacyPrototypeHelpers
,因为原始帮助程序仅在 Rails-2 中正式可用。更好的方法(不引人注目,因为 Rails 3 更喜欢)是只从服务器发送一些数据。在下面的示例中,我猜想如果您通过 JSON 对象或其他格式发送 item.id,然后在创建
XMLHttpRequest
的位置的成功回调中读取它,然后获取 item.id,您可以创建link_to
创建的 HTML,然后将其附加到 DOM。
关于ruby-on-rails - 使用 Rails 3 的 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8802019/