ruby-on-rails - 使用 Rails 3 的 AJAX

标签 ruby-on-rails ruby ajax

我想为我的 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 将商品添加到订单中?

最佳答案

  1. 检查如何render javascript。在正常的请求中,人们会重定向到某些操作或呈现某些 View 等,对于 XHR (XmlHttpRequest),您可以通过服务器render javascript-将呈现的单面 js 模板。您将不得不使用为 Rails-3 提供的 LegacyPrototypeHelpers,因为原始帮助程序仅在 Rails-2 中正式可用。

  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/

相关文章:

ruby-on-rails - Rails 缓存模型变量 - 如何 "force reload"?

ruby-on-rails - 渴望加载关联但限制返回

ruby-on-rails - 如何在创建工厂之前强制 FactoryGirl 创建父级?

ruby-on-rails - 为 rails ActiveRecord 模型对象设置实例变量不起作用

ruby - 使用 rvm 安装 ruby​​ 头文件

ruby-on-rails - Rails 外部 URL 作为 View 中的链接

ruby-on-rails - 我如何解决 Rails 中的 "index unique_schema_migrations already exists"?

javascript - 使用 jQuery 进行多个 Ajax 调用

javascript - 我应该如何将多个变量传递给 jquery ajax 中的 url?

java - JSF p :calendar in p:dataTable: How to get the row of p:ajax dateSelect event