生成设计控制器 - Rails设计

时间:2017-02-01 05:33:34

标签: ruby-on-rails ruby devise

我第一次尝试设计。我正在关注链接:https://github.com/plataformatec/devise。在这里,我执行了命令:

rails generate devise MODEL

当我执行此操作时,会创建模型和视图部件。当我检查路线时,我注意到有一个名称为MODEL的控制器:但是我没有在项目中找到控制器。我的查询我们如何才能找到是否生成控制器并在项目中使用该控制器。 提前谢谢。

3 个答案:

答案 0 :(得分:4)

devise提供了许多命令..

  1. rails generate devise:install - 将创建config/devise.rb
  2. rails generate devise User - 将创建db/migration-file-for-user-model 评论代码,如果您需要其他模块,可以取消注释,例如{{ 1}},confirmable
  3. omniauth - 将分别在rails generate devise:views文件夹中创建包含deviseapp/views/devise/sessionsapp/views/devise/confirmations等文件夹及其视图的所有视图。
  4. registrations - 将创建rails generate devise:views usersapp/views/users/passwords/ .etc的文件夹,而不是上面的app/views/users/confirmations文件夹。
  5. devise - 将创建所有rails generate devise:controllers .. 类似于上面 ...此处它将使用默认注释代码创建controllers,您需要编辑其他保留基本身份验证。此外,您还可以在最后添加app/controllers/devise/sessions_controller.rb 范围,以在users中生成控制器而不是controllers/users/
  6. 你也可以通过这个好devise tutorial ..

    希望它有所帮助。

答案 1 :(得分:2)

正在运行

rails generate devise MODEL

使用Devise gem时不会为您创建控制器。

在您的情况下,如果您想要更改Devise控制器中的任何方法,您可能需要创建自己的继承Devise控制器的控制器。

例如,更改设备注册控制器以允许名字和姓氏将需要您在app / controllers / MODEL / registrations_controller.rb下创建自己的控制器

Link to Devise controllers here

class MODEL::RegistrationsController < Devise::RegistrationsController
  before_filter :configure_permitted_parameters

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name])
  end
end

并指示您的routes.rb使用控制器

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

答案 2 :(得分:1)

将模型替换为用户

rails generate devise User

它将在app / modesld / user.rb下生成User模型,在app / controllers / users_controller.rb下生成用户控制器

使用命令运行迁移以在数据库下添加用户表:

rake db:migrate