0

我正在尝试为 Spree 开发报价扩展,允许客户将文件上传到 AWS S3。

我想通过身份验证来“保护”它的一些操作,Spree 为此提供了有用的帮助,但是我无法让它工作。据我了解,我必须在 QuotesController 中添加这一行。 include Spree::Core::ControllerHelpers::Auth 在我的控制器中,如本要点所示

不幸的是,我仍然得到未定义的方法错误authenticate_user!

为了保持这个线程干燥,你可以在我关于Spree 的存储库问题 #5794 的问题上找到更多信息

任何贡献都非常受欢迎。谢谢你。

4

1 回答 1

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. 这就是您“保护”它所需要的一切。此外,它将使您的视图很好地融入商店的后端。

客户方

按照设计,最好使用不同的命名空间创建另一个 QuotesControllerapp/controllers/spree/quotes_controller.rb并像这样继承:

Spree::QuotesController < Spree:Core::BaseController

于 2014-12-19T13:58:29.167 回答