4

我有一个 Rails 应用程序,可让您请求注册邀请。根据要求,我会保存您的电子邮件并向您发送一封电子邮件,表示感谢“您已请求加入”。由于某种原因,该行在UserMailer.request(@request).deliverRequestsController#create 中给了我这个错误 ArgumentError -- 参数数量错误(0 代表 1)

有任何想法吗?

请求控制器

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

请求.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 => 'alain@lootfly.com')
  end
end
4

2 回答 2

12

我认为request是保留字。尝试更改为request_mail,看看它是否有效。

于 2013-06-27T01:19:48.200 回答
3

我还猜想你不能命名模型 Request 或在你的控制器中有一个名为 @request 的实例变量

于 2013-06-27T01:45:01.247 回答