在rails中以忘记密码方式访问用户

时间:2012-02-17 18:49:13

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我在使用forgotpassword方法访问用户的电子邮件时遇到问题。如何在不使用此方法创建新用户的情况下访问电子邮件。我在users.rb模型中有send_new_password方法。

def forgot_password
    if request.post?
      user = User.find_by_email(params[:user][:email])
      puts user
      if user and user.send_new_password
        flash[:message]  = "A new password has been sent by email."
       # redirect_to root_path
      else
        flash[:warning]  = "Couldn't send password"
      end
    end
  end

这是我忘记密码的页面

<h1>Forgot Password</h1>
<%= form_for(@user) do |f| %>
  <%= render 'shared/error_messages', :object => f.object %>
    <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
<div class="actions">
    <%= f.submit "Submit" %>
  </div>
<% end %>

1 个答案:

答案 0 :(得分:1)

你可能想做

form_for(User.new)

因为您没有任何对象可以放入@user