【问题标题】:Rails devise mailRails 设计邮件
【发布时间】:2011-11-23 14:42:34
【问题描述】:

我试图覆盖设计以发送邮件以激活用户。在注册控制器的创建方法中,我有这个

urlEmail = resource.email.sub('@','-')
Pony.mail(
    :to => resource.email,
    :from => "noreply@mysite.com",
    :subject => "Confirm Account",
    :headers => { 'Content-Type' => 'text/html' },
    :body => ("<h1>Welcome To My Awesome Site</h1>
              <p>follow this link to create your account</p>
              <p>http://localhost:3000/confirm-me/stuff?=" + resource.confirmhash.to_s + "/" + urlEmail.to_s  + "</p>") )

这个 url 指向一个激活用户的方法。这是否是确认帐户的好方法是无关紧要的。问题是当 Pony.mail(...) 运行时我得到这个错误

uninitialized constant RegistrationsController::Pony

我已经安装了 pony 并且 Pony.mail 在控制台中工作。我也尝试在控制器文件的顶部使用 require 'pony' 但我得到了

no such file to load -- pony

我需要做什么才能完成这项工作。

【问题讨论】:

  • Gemfile 中有小马吗?
  • Maka 确保您的环境已包含 pony gem。 Pony 声明为模块,所以如果包含 gem,Pony 常量应该在那里。
  • @MarkGuk 我实际上在 rails 3 上,我使用 bundle install 安装了它。

标签: ruby-on-rails email devise pony


【解决方案1】:

这看起来像是捆绑器的问题。您是否在与控制器测试相同的 RAILS_ENV 中运行控制台?

尝试将 pony.rb 复制到您的库(来自 https://github.com/benprew/pony)并在控制器文件的顶部使用它。从您的 Gemfile 中删除 gem "pony"bundle install。做一个测试。

如果有帮助,请返回 bundler,删除 Gemfile.lock 并运行 bundle install

如果仍有此问题,请在此处包含您的 Gemfile。

【讨论】:

  • "您是否在与控制器测试相同的 RAILS_ENV 中运行控制台?"我在 Rails 方面还不够好,甚至不知道这意味着什么。 (我觉得自己像个白痴。)不管怎样,我复制了 pony.rb,所以现在我有了 lib/pony.rb。小马现在工作正常。谢谢
  • @jack 运行 bundle list 并检查是否有 Pony gem。
猜你喜欢
  • 2011-10-23
  • 2013-01-04
  • 2017-04-10
  • 2018-05-27
  • 2016-05-30
  • 2011-10-23
  • 1970-01-01
  • 2012-11-22
  • 2013-08-19
相关资源
最近更新 更多