我对ruby和rails非常陌生(3天后还在计算),所以我的问题可能是一些愚蠢的事情。然而,这似乎是一些愚蠢的东西,无法通过在网上搜索答案来解决。:(
我正在创建一个简单的博客应用程序,遵循这个指南:http://guides.rubyonrails.org/getting_started.html。很好,没问题。
然后我设置了SendGrid,我也可以通过它发送电子邮件。
现在,我正在尝试使用这个sendgrid:https://github.com/stephenb/sendgrid。我使用“gem installed”安装它,它似乎没有问题。
根据github上的说明,我只需要在邮件类中添加"include SendGrid“,我就可以走了。我就是这么做的:
class Emailer < ActionMailer::Base
include SendGrid
...
end但是当我运行这个应用程序时,我得到了这个错误:未初始化的常量Emailer::SendGrid
根据我迄今所读到的,我还做了几件似乎有意义的事情:
中增加了三行:
中添加了“require”
然而,这一错误仍然存在。有一件事可能表明存在问题,那就是当我查看$LOAD_PATH时,它没有sendgrid目录。相比之下,另一个以相同方式包含的创业板是sqlite3,我看到了“./sqlite3-1.3.4/lib”路径,但我没有看到“./sendgrid-1.0.1/lib”。
有人能看出这一次是什么愚蠢折磨了我吗?
编辑:
我发现了一些很有趣的东西。至少对我来说..。如果我进入rails控制台,事情实际上似乎很好。下面是我的会话的输出:
ruby-1.9.2-p290 :006 > include SendGrid
=> Object
ruby-1.9.2-p290 :007 > sendgrid_category :use_subject_lines
=> :use_subject_lines
ruby-1.9.2-p290 :008 > sendgrid_category "Welcome"
=> "Welcome"
ruby-1.9.2-p290 :009 > p = Post.new(:title => "A new post", :content => "With garbage text")
=> #<Post id: nil, name: nil, title: "A new post", content: "With garbage text", created_at: nil, updated_at: nil>
ruby-1.9.2-p290 :010 > Emailer.send_email("nick@sidebark.com", p).deliver
=> #<Mail::Message:2194904560, Multipart: false, Headers: <Date: Thu, 22 Sep 2011 16:52:41 -0700>, <From: ... blah, bah, blah...>>这封电子邮件是由SendGrid发送并注册的(我可以在统计页面上看到)。
所以,最大的问题是:为什么我的应用程序只允许我在运行来自控制台的命令时包含SendGrid?在环境等方面有什么不同?
还请注意,电子邮件是从控制台发送的,而不是从应用程序流中发送的,尽管development.log说在这两种情况下都发送了电子邮件.
发布于 2012-04-16 22:16:03
对于没有在原始帖子上阅读评论的人来说,答案是,一旦您更改了应用程序的依赖项或配置,服务器就需要重新启动。
至于在控制台中工作的原因,每次加载Rails控制台时,都会重新加载整个应用程序,包括新的依赖项和配置文件。
https://stackoverflow.com/questions/7522254
复制相似问题