2015-06-27 48 views
0

我正在使用巫術構建Rails應用。當我去到用戶/新,有一種說法錯誤,指出 「要使用reset_password子模塊,你必須定義一個郵件(config.reset_password_mailer = YourMailerClass)」在巫術中定義郵件

推門進去,配置/初始化/ sorcery.rb和包含的代碼 user.reset_password_mailer = UserMailer但我仍然收到錯誤。 內UserMailer類,我定義reset_password_email方法

def reset_password_email(user) 
    @user = User.find user.id 
    @url = edit_password_reset_url(@user.reset_password_token) 
     mail(:to => user.email, 
      :subject => "Your password has been reset") 
end 

並更新sorcery.rb文件

user.reset_password_email_method_name = :reset_password_email 

我仍然接收相同的錯誤消息。

在用戶控制器:

class UsersController < ApplicationController 

    def index 
    @users = User.all 
    end 

    def new 
    @user = User.new 
    end 


    def create 
    @user = User.new(user_params) 
     if @user.save 
      redirect_to products_url, notice: "Signed Up!" 
     else 
      render "new" 
     end 
    end 

    def show 
    @user = User.find(params[:id]) 
    end 

    private 

    def user_params 
    params.require(:user).permit(:email, :user_name, :password, :password_confirmation) 
    end 

end 

我的用戶模型爲:

class User < ActiveRecord::Base 
    authenticates_with_sorcery! 
    has_many :projects 

    validates :password, confirmation: true 
    validates :password_confirmation, presence: true 
    validates :email, uniqueness: true 

end 

回答

1

看起來你跟着Sorcery docs配置郵件。但請記住,config/initializers/sorcery.rbconfig/initializers中的所有文件一樣,只會在應用程序啓動時處理。

它看起來像你的配置是正確的,如果我在添加配置之前運行應用程序,但得到同樣的錯誤,但它在重新啓動Rails服務器後對我有效。