2013-06-26 6 views
3

У меня есть приложение rails, которое позволяет вам запросить приглашение зарегистрироваться. По запросу я сохраняю вашу электронную почту и отправляю вам электронное письмо, в котором говорится, что вы попросили присоединиться. По какой-то причине строка UserMailer.request(@request).deliver дает мне эту ошибку ArgumentError в RequestsController # create - неправильное количество аргументов (0 для 1)ActionMailer неверное количество аргументов error

Любые идеи?

запрашивает контроллер

class RequestsController < ApplicationController 
    def new 
    @request = Request.new 
    end 

    def create 
    @request = Request.new(params[:request]) 
    if @request.valid? 
     if User.find_by_email(@request.email) || Invitation.find_by_email(@request.email) 
     redirect_to log_in_path, notice: "Email already in use" 
     elsif @request.save 
     @request.save 
     redirect_to root_url, :notice => "Request sent." 
     UserMailer.request(@request).deliver 
     end 
    else 
     render "new" 
    end 
    end 
end 

request.html.haml

You have requested to join in 

мейлеры/user_mailer.rb

class UserMailer < ActionMailer::Base 
    def request(request) 
    @request = request 
    mail(:to => request.email, :subject => "Requested an invite", :from => '[email protected]') 
    end 
end 
+0

Он выглядит хорошо, вы используете это в рабочем режиме? Вам нужно перезагрузить сервер? Можете ли вы назвать линию с консоли и посмотреть, что она говорит? – Matt

+0

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

+0

Я думаю, что это сбой, я думаю, что на самом деле ничего не случилось –

ответ

12

Я тонкая k request является зарезервированным словом. Попробуйте изменить на request_mail и посмотрите, работает ли он.

+0

это было спасибо за помощь! –

3

Я хотел бы также предположить, что вы не можете назвать модель запроса или иметь переменный экземпляр в контроллере с именем @request