4

サインアップの招待をリクエストできる Rails アプリがあります。リクエストに応じて、あなたのメールを保存し、「参加をリクエストしました」というお礼のメールを送信します。ArgumentError UserMailer.request(@request).deliverin RequestsController#create -- 引数の数が間違っています (1 に対して 0) というエラーが表示されます。

何か案は?

リクエストコントローラー

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

mailers/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 に答える