如何在Spree中扩展UserController?

时间:2016-08-29 18:48:46

标签: ruby-on-rails model-view-controller spree

根据Spree指南,可以将users_controller_decorator.rb添加到controllers文件夹以扩展UsersController功能。

我添加了

Spree::UsersController.class_eval do
   before_filter :load_stock_locations
   def load_stock_locations
       @stock_locations = Spree::StockLocation.all
   end
end

但是,当我尝试访问/app/views/spree/admin/users/_form.html.erb中的@stock_locations时,它是零。

有人可以帮忙解释为什么我无法访问此变量吗?

1 个答案:

答案 0 :(得分:0)

您已覆盖Spree::UsersController,它基本上包含前端(最终用户)端的请求和响应方法。

相反,尝试覆盖后端用户控制器,即'Spree :: Admin :: UsersController'并应用相同的逻辑。

您可以在https://github.com/spree/spree/blob/master/backend/app/controllers/spree/admin/users_controller.rb

找到spree的管理员用户控制器