2014-10-03 71 views
7

简单的问题。Rails生成设计:控制器不工作

我正在使用Rails 4.1.4设计3.3.0为我的应用程序。

我试图产生设计的控制器,所以我可以重写一些行为。

文档说跑...

轨产生色器件:控制器[适用范围]

...下生成应用程序/控制器/范围控制器,因此您可以修改他们。但是,当我运行前面的命令,它口口声声说,没有发电机色器件:控制器

找不到发电机色器件:控制器。

有谁知道为什么?

谢谢。

UPDATE

事实上,当我运行...

轨产生

...检索可用发电机的名单,我得到以下输出为设计发电机:

设计:

色器件

色器件:安装

色器件:观点

所以definitelly的色器件:控制器发生器是不存在的。有没有添加它的方法?怎么样?。

谢谢。

+0

可能会有所帮助? http://excid3.com/blog/rails-3-could-not-find-generator-deviseinstall/ – 2014-10-03 19:12:09

回答

13

解决

我刚刚创建的手动控制,使其从设计继承。例如:

class Users::RegistrationsController < Devise::RegistrationsController 
    # Override the action you want here. 
end 

这种控制器应该生活在应用程序/控制器/用户/ registrations_controller.rb。如果您有任何其他范围只需与app/controllers/scope/registrations_controller.rb。例如,如果你有一个管理员范围它应该是app/controllers/admins/registrations_controller.rb

最好。

UPDATE

在从blushrt的评论,我忘了提,它修改的config/routes.rb中使设计使用创建的控制器特定资源是非常重要的。例如,对于用户,你应该把你的的config/routes.rb中

devise_for :users, controllers: { registrations: "users/registrations" } 

就是这样。最好。

3

回答OP的原始问题“有人知道为什么吗?”

问题是,此发生器目前仅适用于Devise的主分支,如GitHub issue所述。

如果你想在发布前先使用此功能,您可以添加到您的Gemfile

gem 'devise', git: 'https://github.com/plataformatec/devise'