Spree :: OrderPopulator访问商店外部

时间:2014-07-15 13:08:10

标签: ruby-on-rails spree

On Rails 4.1 ..是Spree 2-3-stable的新手,并尝试各种各样的东西。我的测试商店工作正常,现在我正在尝试并将其集成到我的应用程序,这是一个预订网站。

在我的预订日历上,我希望用户点击预订链接并自动填充他们的购物车,然后直接显示他们的购物车。

假设我有一个狂欢产品,并且数据库中存在一个变体,并且current_user已登录(即spree_current_user存在)..我认为这是可能的,但似乎它甚至不会创建populator。 / p>

class BookingsController < ApplicationController
  def add_booking_to_cart        
    populator = Spree::OrderPopulator.new Spree::Order.current_order(create_order_if_necessary: true), current_currency
    # .. get variant related to booking
    # .. add varient to populator
  end
  #... rest of bookings controller
 end

Errors out with:
NoMethodError - undefined method `current_order' for #<Class:0x00000007d4fc68>:

我正在尝试对Will正在做的事情here做类似的事情,但我在current_order对象上得到错误未定义的方法。我对代码的理解是它应该在必要时创建一个新订单,即如果一个订单不存在。不确定这里有什么用?任何指针都会非常精确。

https://github.com/spree/spree/blob/2-3-stable/frontend/app/controllers/spree/orders_controller.rb#L46

1 个答案:

答案 0 :(得分:1)

为此,您的控制器需要扩展Spree::StoreController

class BookingController < Spree::StoreController

这是在Spree中定义方法的地方: https://github.com/spree/spree/blob/master/core/lib/spree/core/controller_helpers/order.rb

此外,您可能需要before_filter :set_current_order