1

我有一个具有设计商家模型的功能应用程序,并且我已经覆盖了注册控制器,所以我有一个文件夹结构,如

app/controllers/merchants/registrations_controller.rb

现在我正在尝试添加一个名为 products 的新控制器,以便拥有类似的东西

app/controllers/merchants/registrations_controller.rb
app/controllers/merchants/products_controller.rb

当我表演时

rails g controller

我得到了所有需要的文件,但由于某种原因,我无法执行 rake 或生成器,因为这个错误

undefined method `devise' for #<Class:0x007f929f5b5408>

当我将新控制器添加到设计文件夹时会发生这种情况,在这种情况下是商家文件夹......是否有我不能或我不应该这样做的原因?

我怎样才能做到这一点?也许有更好的方法来做到这一点......如果是这样的话,可能会很好知道它;)

更新:目标是将与商家相关的所有控制器分组到商家文件夹下,我还发现问题是由 app/helpers/merchants/products_helper.rb 中生成的帮助文件生成的,因此删除此文件异常消失.. 。 但为什么?

4

1 回答 1

0

为什么将 products_controller 添加到您的设计商家文件夹中?如果目标是为产品控制器验证商家,则可以使用以下方法:

像往常一样将您的 product_controller.rb 放在 app/controller/ 中,并在其中包含此过滤器:

before_filter authenticate_merchant!

检查你的 route.rb 中是否有这个(用于自定义注册控制器):

devise_for :merchants, :controllers => {:registrations => "merchants/registrations"}
于 2012-05-10T21:56:57.713 回答