如何添加新的控制器来设计控制器结构?

时间:2012-05-10 21:07:29

标签: ruby-on-rails devise

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

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中生成的帮助文件生成的,因此删除此文件的例外情况消失...但为什么?

1 个答案:

答案 0 :(得分:0)

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

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

before_filter authenticate_merchant!

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

devise_for :merchants, :controllers => {:registrations => "merchants/registrations"}