2014-07-23 33 views
0

我是Rails的新手,這是我第一次創建郵件程序。我有一個用戶模型,其中包含名稱,角色和電子郵件(所有字符串)。我的應用程序出現問題,這是一個錯誤;它說用戶是不確定的,儘管我認爲我已經通過我的控制器傳遞了它。Rails 4 ActionMailer拋出未定義的本地變量/方法

我已經瀏覽了幾篇文章,Rails指南,API Dock和我仍然無法弄清楚。任何幫助將不勝感激!!!

user_mailer.rb

class UserMailer < ActionMailer::Base 
    default from: "[email protected]" 
  def receipt_email(user) 
    @user = user 
    @url  = 'http://example.com/login' 
    mail(to: @user.email, subject: 'Thank you!') 
  end 
end 

users_controller.rb:

class UsersController < ApplicationController 
    load_and_authorize_resource :user, param_method: :user_params 

    def update 
    respond_to do |format| 
     if @user.update(user_params) 
     UserMailer.receipt_email(@user).deliver 
     format.html { redirect_to users_path, notice: 'User was successfully updated.' } 
     format.json { render :show, status: :ok, location: @user } 
     else 
     format.html { render :edit } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

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

    def user_params 
     params.require(:user).permit(:role, :email) 
    end 
end 

錯誤消息:

未定義局部變量或方法`用戶」的UserMailer:類

app/mailers/user_mailer.rb:3:in `<class:UserMailer>' 
app/mailers/user_mailer.rb:1:in `<top (required)>' 
app/controllers/users_controller.rb:19:in `block in update' 
app/controllers/users_controller.rb:17:in `update' 
+0

這封郵件的外觀是什麼樣的?有沒有機會引用'user'而不是'@ user'? –

+0

這些都只是純文本 - 我試圖儘可能簡單。沒有變數。 – dean1997

+0

這有點不尋常。該錯誤消息應提及哪些文件和行會生成錯誤。這是什麼意思? – SteveTurczyn

回答

0

因此,我做了一些更多的測試,並從頭開始重新整理所有東西 - 事實證明,我的縮進不是隻用2個空格完成的,就像其他文件一樣。

注意自我 - 總是先檢查縮進!

相關問題