【发布时间】:2014-03-02 19:27:04
【问题描述】:
我想在任何地方显示一个自定义的“忘记密码”表单,我认为它类似于https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app
所以我在config/routes.rb 中添加了:
get "/forgot_password" => "desktop#new"
在app/views/desktop/new.html.haml:
=form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f|
.error-messages
=devise_error_messages!
=f.email_field :email, :autofocus => true, :required => true, :class => 'field'
%br
%br
%button.signin-button Send Instructions
在app/controllers/desktop_controller.rb:
class DesktopController < ApplicationController
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
def new
end
end
当我导航到 /forgot_password 时,我收到 undefined local variable or method 'resource' 错误。我做错了什么?
【问题讨论】:
标签: ruby-on-rails ruby authentication ruby-on-rails-4 devise