ruby-on-rails - Rails生成设计:Controllers not Working

标签 ruby-on-rails devise

简单的问题。

我正在为我的应用程序使用 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/

相关文章:

ruby-on-rails - 带有 simple_form 的按钮内的 HTML 代码

ruby-on-rails - devise-async 不适用于 sidekiq

ruby-on-rails - libmysqlclient.so.15 : cannot open shared object file: No such file or directory

mysql - 如果以前为 postgres 安装了 thinking sphinx,我是否需要为 mysql 重新安装它?

ruby-on-rails - Rails4 和 Devise(NoMethod 错误)

ruby-on-rails - $ rails generate devise User #=> 使用 change_table 而不是 create_table 生成迁移?设计错误?

ruby-on-rails - 通过设计跳过开发中的确认电子邮件

ruby-on-rails - 如何使用设计 user_signed_in?集成测试中的方法?

ruby-on-rails - 从Rails 3中的另一个部分渲染另一个文件夹中的部分

ruby-on-rails - Ruby on Rails : Order users based on average ratings with most reviews?