Spree--进入订单类

问题描述 投票:0回答:1

我在扩展spree控制器时遇到了一个问题。当我覆盖控制器时,我无法访问订单类。我得到以下错误(我使用 Spree 1.2.4):

NameError (uninitialized constant Spree::Admin::OrdersController::Order):
spree_russian_post/app/controllers/admin/orders_controller_decorator.rb:9:in `sample_method'
actionpack (3.2.8) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (3.2.8) lib/abstract_controller/base.rb:167:in `process_action'
actionpack (3.2.8) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (3.2.8) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
...

问题出在我的控制器上

spree_russian_post/app/controllers/admi /orders_controller_decorator.rb

这里是代码。

require 'spree_core'

Spree::Admin::OrdersController.class_eval do

  def sample_method
      @order = Order.find_by_param(params[:id]) #Here I get the error
      ....
  end

end

我应该怎么做才能访问订单类?

ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 spree
1个回答
2
投票

你的问题是 Spree 认为你正在寻找常量的问题。Spree::Admin::OrdersController::Order

将您的查询改为 @order = Spree::Order.find(params[:id])

Spree会知道你正在寻找与spree_orders表关联的spree对象。

© www.soinside.com 2019 - 2024. All rights reserved.