简单的问题。
我正在为我的应用程序使用 Rails 4.1.4 和 Devise 3.3.0 。
我正在尝试生成设计的 Controller ,以便可以覆盖某些行为。
文档说要运行...
rails generate devise:controllers [scope]
...在app/controllers/scope下生成 Controller ,因此您可以对其进行修改。但是当我运行前面的命令时,它总是说没有生成器devise:controllers:
Could not find generator devise:controllers.
有谁知道为什么吗?
谢谢。
更新
实际上,当我运行时...
rails generate
...以检索可用生成器的列表,我得到了 Devise 生成器的以下输出:
Devise:
devise
devise:install
devise:views
因此,肯定没有 devise:controllers 生成器。有没有添加它的方法?如何?。
谢谢。
最佳答案
解决了
我刚刚手动创建了 Controller ,并使其继承自 Devise 。例如:
class Users::RegistrationsController < Devise::RegistrationsController
# Override the action you want here.
end
该 Controller 应位于app/controllers/users/registrations_controller.rb中。如果还有其他作用域,请使用app/controllers/scope/registrations_controller.rb。例如,如果您具有管理员作用域,则为app/controllers/admins/registrations_controller.rb。
最好的。
更新
在blushrt发表评论之后,我忘了提到修改config/routes.rb以使设计使用为特定资源创建的 Controller 很重要。例如,对于用户,您应该输入config/routes.rb:
devise_for :users, controllers: { registrations: "users/registrations" }
就是这样。最好的。
关于ruby-on-rails - Rails生成设计:Controllers not Working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26184905/