2013-02-12 3 views
0

Кажется, что когда я запускаю мое приложение в режиме производства я получаю следующее в моей консоли:неинициализированным постоянная почтовая DEFAULT_FROM

/home/Desktop/Portal/app/mailers/holiday_mailer.rb:2:in 
`<class:HolidayMailer>': uninitialized constant HolidayMailer::DEFAULT_FROM (NameError) 

Я посмотрел на следующий вопрос SO Rails 3 Action Mailer uninitialized constant. Оказывается, что я не сделал эту ошибку, как мой набор до нижеследовал:

environment.rb

require File.expand_path('../application', __FILE__) 

# Initialize the rails application 
Portal::Application.initialize! 
ActionMailer::Base.delivery_method = :smtp 
DEFAULT_FROM = "[email protected]" 

праздник почтовик

class HolidayMailer < ActionMailer::Base 
    default :from => DEFAULT_FROM 

    def holiday_confirmation(holiday) 
    @holiday = holiday 
    mail(:to => holiday.user.email, :subject => "Your Absence Request") 
    end 
end 

Контроллер отдыха

def update() 
    admin = User.find(current_user.role? :administrator) 
    holiday = Holiday.find(params[:id]) 
    user = User.find(id = holiday.user_id) 

    if holiday.update_attributes(params[:holiday]) 
     if holiday.state == "approved" 
     user.absentdays = user.absentdays - (holiday.days_used).to_i 
     user.save 
     end 
     redirect_to absence_path, :notice => "request updated!" 
     #email the user to tell them the state of their holiday 
     HolidayMailer.holiday_confirmation(holiday).deliver 
    else 
     render 'edit' 
    end 
    end 

Кажется, что это неправильно

ответ

1

Я не знаю, почему это порождает ошибку в производстве, но я могу рассказать вам, как исправить эту проблему.

Я воспроизвел этот сценарий в своем приложении 3.2.2 рельсов, и я получил ту же ошибку в производстве. Возможны две возможные ошибки.

  1. Перемещение переменной DEFAULT_FROM в средах/production.rb
  2. сделать файл инициализации для настройки почты (конфиг/Инициализаторы/mail_settings.rb) и поставить эту переменную DEFAULT_FROM в этом файле.

    Второй подход является опрятным, поскольку его конфигурация для почтовой программы и переменной будет доступна как в среде разработки, так и в производственной среде. Оба этих подхода потребуют перезапуска сервера dev/развертывания.

    Надеюсь, это поможет.

+0

Пошел со вторым вариантом, в конце концов, ваше право на его гораздо более чистый способ приветствия – David

Смежные вопросы