如何在Devise中创建新的编辑表单?

时间:2016-05-09 21:31:50

标签: ruby-on-rails ruby devise

现在Devise生成了edit.html.erb,非常适合编辑基本信息。但是,我想生成一个新的编辑页面,类似于edit.html.erb,但在那里,用户将能够编辑有关自己的其他信息..我不想把所有内容放在edit.html.erb上因为UI。

到目前为止,我只在用户表中添加了新列,以便我将要创建一个新的编辑页面。

现在这些是我的路线:

 devise_for :users, class_name: 'FormUser', :controllers => { omniauth_callbacks: 'omniauth_callbacks', registrations: 'registrations' }


  root 'setup#index'
  get '/setup' => 'setup#index'
  get '/users/sign_out' => 'setup#index' 

这是我的registration_controller.rb:

class RegistrationsController < Devise::RegistrationsController
  def update_resource(resource, params)
    if resource.encrypted_password.blank? # || params[:password].blank?
      resource.email = params[:email] if params[:email]
      if !params[:password].blank? && params[:password] == params[:password_confirmation]
        logger.info "Updating password"
        resource.password = params[:password]
        resource.save
      end
      if resource.valid?
        resource.update_without_password(params)
      end
    else
      resource.update_with_password(params)
    end
  end
end

所以我创建了一个带有视图的新控制器,但我不知道现在在路由中放什么。 新控制器的名称是styles_controller.rb,而视图是fits.html.erb ..

1 个答案:

答案 0 :(得分:0)

此脚本将为您生成控制器以覆盖Devise的行为(但我强烈建议您不要这样做):

https://github.com/plataformatec/devise/wiki/Tool:-Generate-and-customize-controllers

这将向您展示如何生成视图模板,以覆盖默认屏幕以登录/等。

https://github.com/plataformatec/devise#configuring-views

本教程介绍了如何在没有密码的情况下允许用户编辑自己的个人资料:

https://github.com/plataformatec/devise/wiki/How-To%3a-Allow-users-to-edit-their-account-without-providing-a-password