我正在尝试为Spree开发Quote Extention,允许客户将文件上传到AWS S3。
我想"安全"通过身份验证它的一些操作和Spree为此提供了有用的帮助,但是我无法设法让它工作。
据我所知,我必须在QuotesController中添加这一行。
include Spree::Core::ControllerHelpers::Auth
在我的控制器中,如gist
不幸的是,我仍然得到未定义的方法错误authenticate_user!
为了保持此主题干,您可以在Spree's repository issue #5794
上找到有关我的问题的更多信息。非常欢迎任何贡献。 谢谢。
答案 0 :(得分:0)
所以我可以删除这个问题,因为它是基于错误的假设,但我更详细地说明了我如何设法解决QuotesController的身份验证。
非常感谢@Hates_和Spree IRC的所有人提供的答案!
第一个错误的假设是关于QuotesController的设计,它应该分为两部分,一部分供客户使用,一部分用于商店管理员后端。第二个错误的假设是include Spree::Core::ControllerHelpers::Auth
不会给我我想要的保护。所以这就是我最终的结果:
管理员端
在Spree中,为了让您的控制器享受商店管理员的“保护”,此控制器必须继承Spree::Admin::QuotesController < Spree::Admin::BaseController
。该控制器将存在app/controllers/spree/admin/quotes_controller.rb
。这就是“保护”它所需要的一切。此外,它将使您的视图很好地融入商店的后端。
客户方
在设计上,最好使用不同的命名空间app/controllers/spree/quotes_controller.rb
制作另一个QuotesController并继承如下:
Spree::QuotesController < Spree:Core::BaseController