0

post = review の場合にメールを送信しようとしていますが、構文エラーが発生します。コードはどのように変更する必要がありますか? 追加しようとするUserMailer.review_email(@user).deliverと、このエラーが発生しました

これは私が得ているエラーです

SyntaxError in PostsController#create  
syntax error, unexpected tIVAR, expecting keyword_do or '{' or '('
    mail(:to => admin@domain.com, :subject => "Review")
  syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
    mail(:to => admin@domain.com, :subject => "Review")
syntax error, unexpected ')', expecting keyword_end

UserMailer コードを配置しようとしているコントローラーは次のとおりです。

def create
    @post = current_user.posts.build(params[:post])
    if @post.save
      if @post.review
        UserMailer.review_email(@user).deliver
        flash[:notice] = "Post will be reviewed"
      redirect_to root_path
      else
        flash[:success] = "Posted"
      redirect_to root_path
    end
    else
      @feed_items = []
      render 'static_pages/home'
    end
  end

ユーザーメーラーモデル

class UserMailer < ActionMailer::Base
  default from: "account@domain.com"

  def review_email(user)
    @user = user
    mail(:to => admin@domain.com, :subject => "Post needs review")
  end

end
4

1 に答える 1

2

() を削除し、アドレスを文字列にします。

mail :to => "admin@domain.com", :subject => "Post needs review"
于 2013-04-09T19:46:06.767 に答える