设计密码重置视图

时间:2013-12-27 20:16:22

标签: css ruby-on-rails devise views

我正在尝试设计我的设计形式。到目前为止,我已经通过在app / views / devise中找到的表单中添加类和ID来完成此操作。但是,我无法找到/ users / password / new(new_password_path)的格式。它呈现一个带有“发送重置密码指令”的按钮;我在我的应用程序中进行了搜索,无法找到它的来源......那是Devcent gem本身吗?

TL / DR:如何设置忘记密码视图的样式?

提前致谢。

2 个答案:

答案 0 :(得分:3)

与注册和会话行为类似,Devise提供了一个默认的密码视图和控制器,它不会在您自己的应用程序文件夹结构中自动生成。

要覆盖“忘记密码”视图,请在views / devise / passwords文件夹中创建new.html.erb。您可以在Devise的GitHub上看到默认视图:https://github.com/plataformatec/devise/tree/master/app/views/devise/passwords

在app / controllers文件夹中覆盖PasswordsController create passwords_controller.rb,继承自Devise控制器并覆盖您需要的任何内容。例如,提供非默认布局。

class PasswordsController < Devise::PasswordsController
    include ApplicationHelper
    layout "minimal"
end

然后,您需要更改routes.rb文件以指定设计应使用的自定义控制器:

devise_for :users, :controllers => {:registrations => "registrations", :sessions => "sessions", :passwords => "passwords"}

答案 1 :(得分:0)

在你 development.rb

config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { 
:address => 'smtp.gmail.com', 
:port => your_port_num, 
:domain => 'site.com',
:user_name => 'admin@site.com',
:enable_starttls_auto => true,
:password => 'none' }

您的路径将被重定向到邮件中。