如何在背景上添加视频以进行设计控制器注册?

时间:2018-02-09 07:59:43

标签: ruby-on-rails ruby devise

我的观点:

.background_video[data-no-transition-cache]
  = video_tag @background.footage.url, loop: :loop, autoplay: :autoplay, muted: true, class: 'videos'
.container
  .row
    .col-md-6.col-md-offset-3
      h2.text-center Sign up

      = form_for(resource, url: '/users') do |f|
        = devise_error_messages!

        .form-group
          = f.label :email
          br
          = f.email_field :email, autofocus: true, :class => 'form-control'

        .form-group
          = f.label :password
          = f.password_field :password, autocomplete: 'off', :class => 'form-control'

        .form-group
          = f.label :password_confirmation
          br
          = f.password_field :password_confirmation, autocomplete: 'off', :class => 'form-control'

        .actions
          = f.submit 'Sign up', :class => 'btn btn-primary'

我想在此视图中添加背景视频。但我不知道设计的控制者在哪里。

如何为Devise找到或创建控制器?

3 个答案:

答案 0 :(得分:2)

您可以在控制器文件夹中覆盖设计控制器并命名为registrations_controller.rb,如下所示

class RegistrationsController < Devise::RegistrationsController
    # GET /resource/sign_up
    def new
       #=> for @background video write code here
       super
    end

    # POST /resource
    def create
        super
    end
end

路线看起来像

devise_for :users, :controllers => {:registrations => 'registrations'}

如果你需要自动设计控制器,那么link

rails generate devise:controllers users

如果运行此命令,则设计控制器将生成/app/controllers/users/路径

答案 1 :(得分:1)

您必须生成控制器并覆盖或附加到其继承的方法。例如,如果你想附加到新方法

 def new
   @background # use your stuff here
   super # inherit and use devise's method content
 end

如何生成设计控制器: https://github.com/plataformatec/devise/wiki/tool:-generate-and-customize-controllers

Devise的注册控制器源代码: https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb

答案 2 :(得分:0)

您可以运行任务

rails(rake for older rails version) generate devise:controllers [scope]

范围是控制器的名称

devise docs配置控制器部分

的更多信息