2012-02-13 4 views
5

Я пытаюсь использовать ActionMailer уведомить меня, когда новый комментарий отправлен, но я получаю сообщение об ошибке:Rails 3 Action Mailer неинициализированным постоянная

uninitialized constant CommentsController::CommentMailer 

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

Мой комментарий почтовик:

class CommentMailer < ActionMailer::Base 
    def newcomment(comment) 
    mail(:to => "[email protected]", :subject => "New Comment") 
    end 
end 

и мой раздел Контроллер:

def create 
    @comment = Comment.new(params[:comment]) 
    @comment.user_id = current_user.id 

respond_to do |format| 
    if @comment.save 
    CommentMailer.newcomment(@comment).deliver 
    format.html { redirect_to @comment, notice: 'Comment was successfully created!' } 
    format.json { render json: @comment, status: :created, location: @comment } 
    else 
    format.html { render action: "new" } 
    format.json { render json: @comment.errors, status: :unprocessable_entity } 
    end 
end 
end 
+3

Ваше сообщение об ошибке говорит «Комментарии» с помощью s, тогда как ваш код говорит CommentMailer. Является ли ошибка, безусловно, исходящей из этого кода? Можете ли вы определить линию, откуда исходит ошибка из stacktrace? – Shadwell

+0

Жаль, что уже было поздно, когда я задал свой вопрос. это «CommentMailer» Not «CommentsMailer» no "s" – Steve

ответ

3

ОК мой плохой, я должен был перезапустить мое приложение рельсы после того, как я добавил почтовик. Он отлично работает сейчас

13

Это также может произойти, если вы неправильно указали свой почтовый файл. UserMailer.rb сломается, тогда как user_mailer.rb - это то, что ожидается.

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