Ruby on rails 在Rails 3.2应用程序中使用非英语字符导致意外错误

Ruby on rails 在Rails 3.2应用程序中使用非英语字符导致意外错误,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,这很奇怪,让我描述一下这个场景 我为我的rails应用程序定义了这个mailer class DeliveryMail < ActionMailer::Base default from: "from@example.com" def document_upload_mail(user,document) @user = user @document = document mail(:to => user.email ,:subject =&g

这很奇怪,让我描述一下这个场景

我为我的rails应用程序定义了这个mailer

class DeliveryMail < ActionMailer::Base
  default from: "from@example.com"

  def document_upload_mail(user,document)
     @user = user
     @document = document
     mail(:to => user.email ,:subject =>  "Envió de enlace descarga documentos resultados domain") do |format|
      format.html { render "upload_file" }
     end
  end
end
每当我把这个作为邮件的主题

:subject => "Envió de enlace descarga documentos resultados domain"
这是我的控制台的错误Rails提示

syntax error, unexpected $end, expecting ')'
现在,如果我删除文本“
Envió
”,Rails不会抛出任何错误,邮件也不会被发送

只是想让你知道我在任何地方都没有遗漏任何语法

粘贴邮件代码

class DeliveryMail < ActionMailer::Base
  default from: "from@example.com"

  def user_creation_mail(user,password)
    @user = user
    @password = password
    mail(:to => user.email,:subject => "Congratulation you been registered in Domain") do |format|
      format.html { render "user_creation" }
    end
  end


  def document_upload_mail(user,document)
     @user = user
     @document = document
     mail(:to => user.email ,:subject =>  "Envió de enlace descarga documentos resultados domain") do |format|
      format.html { render "upload_file" }
     end
  end
end
class DeliveryMailuser.email,:subject=>“祝贺您在域中注册”)采用|格式|
format.html{呈现“用户创建”}
结束
结束
def文件上传邮件(用户、文件)
@用户=用户
@文件=文件
邮件(:to=>user.email,:subject=>“Envióde enlace descarga documentos resultados domain”)格式|
format.html{render“upload_file”}
结束
结束
结束
不知道这些有什么问题

我创建了一个虚拟rails应用程序,以检查是否共享了相同的行为

是的,我在这个应用程序中也发现了同样的错误

我的Rails版本是

3.2.1

Ruby版本

1.9.2-p290

确实有什么问题,有人能给我指点一下吗

试试:

# coding: utf-8
只需将
coding:
放在第一行注释中,然后在可选空格后指定文件其余部分的编码。您可以在此处添加额外的解释,如:

# I will use the following encoding: utf-8. Till the end of the file.

看到了吗<代码>编码:部分在这里,因此它可以工作。

将其放在
DeliveryMail
类的最顶端。或者其他任何有特殊字符的地方

# encoding: UTF-8

我在我的应用程序中遇到了类似的汉字问题,添加这行代码为我解决了这个问题。

甚至
“Envió”。force_编码(“UTF-8”)
无法解决文件mailer查看文件或交付的目的。\u mailer.rb文件明白了我不明白你的答案是
ruby注释
而不是
ruby hash
@Viren这是一个神奇的注释。它指定了文件的编码。我想你是在哪里要求我在
ActionMailer配置中将这些作为哈希值放置的。那个评论帮助只是想知道更多关于它的信息,你能在上面和我分享任何链接吗it@Viren我在一本关于Ruby的纸质书上读到过。但没有那么多需要进一步解释的。只需将
couding:
放在第一行注释中,然后在可选空格后指定文件其余部分的编码。您可以在这里添加额外的解释,例如:
#我将使用以下编码:utf-8
。看到了吗<代码>编码:
零件在这里,所以它可以工作。这里的编码是不区分大小写的。@Viren是我说的,这是一本纸质书。我无法链接到它:)如果您感兴趣,它被称为“编程Ruby 1.9:实用程序员指南”。还想知道,当
rails引导应用程序时,没有报告此错误
# encoding: UTF-8