1

SMTP でメーラーをセットアップしようとしていますが、(コンソールから) 次のエラーが表示されます。

SyntaxError (/Users/nelsonkeating/Desktop/prelaunch/app/mailers/user_mailer.rb:6: invalid multibyte char (US-ASCII)
/Users/nelsonkeating/Desktop/prelaunch/app/mailers/user_mailer.rb:6: syntax error, unexpected $end, expecting ']'
    headers[‘X-MC-Track’] = "opens, clicks"
             ^):
  app/models/user.rb:37:in `send_welcome_email'

user_mailer.rb:

class UserMailer < ActionMailer::Base
  default :from => "remindeal@gmail.com"

  def welcome_email(user)
    mail(:to => user.email, :subject => "Invitation Request Received")
    headers[‘X-MC-Track’] = "opens, clicks"
    headers[‘X-MC-GoogleAnalytics’] = "example.com"
    headers[‘X-MC-Tags’] = "welcome"
  end
end

ユーザー.rb:

35 def send_welcome_email
36    unless self.email.include?('@example.com')
37      UserMailer.welcome_email(self).deliver
    end
  end
4

1 に答える 1

1

Ruby は、単一引用符、二重引用符、および文字列を引用する逆引用符のみを受け入れます。それぞれに異なる意味があります。

マルチバイトの前方引用符と逆引用符でハッシュのキーを引用しているためheaders、ruby はエラーを出力します。あなたはどこかの Web サイトに飾られたソース コードをコピー ペーストしたと思います。

一重引用符を使用して、上記のソースを次のように置き換えることができます。

headers['X-MC-Track'] = "opens, clicks"
headers['X-MC-GoogleAnalytics'] = "example.com"
headers['X-MC-Tags'] = "welcome"

通常、ハッシュキーには記号 ( ) を使用することをお勧めしますが、上記のような場合は、キーの一部として:like_this含まれているため、シングル クォーテーションまたはダブル クォーテーションのいずれかを使用する必要があります。-

于 2012-06-04T04:03:56.873 に答える