我是一个Ruby新手,如果这个问题很简单,请道歉.非常感谢您的帮助.
我们有一个部署在Heroku上的Sinatra应用程序.我们正在尝试添加一个发送简单电子邮件的页面.我已将SendGrid插件添加到Heroku应用程序中.现在,我只是尝试添加使用SendGrid SMTP服务器信息创建和发送消息的Ruby代码.
我遇到的问题是即使我在Heroku应用程序上安装了Mail gem(通过添加到Gemfile中),当Heroku应用程序启动时抱怨"treetop/runtime"未安装时出现错误:
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:75:in `require': no such file to load -- treetop/runtime (LoadError)
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:75:in `rescue in block in <module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:69:in `block in <module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:68:in `each'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:68:in `<module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:2:in `<top (required)>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
Run Code Online (Sandbox Code Playgroud)
同样,当我尝试安装Pony gem时,它抱怨它无法加载Mail.奇怪的是,这一切都适用于我的本地系统,所以我认为这是Heroku的一个问题.我无法让Heroku从Pony或Mail中完全加载所需的一切,以便成功启动.(注意:我甚至无法启动Heroku,因此我甚至无法测试实际发送的电子邮件代码.)
任何具体的帮助/见解将不胜感激.Heroku有没有遇到过这个?还有其他宝石可以用于这个简单的目的吗?
谢谢!
PS捆绑包成功安装了邮件(2.4.4)和小马(1.4).
我有一个 PostgreSQL 字符串数组作为表中的一列。我使用 GIN 方法创建了一个索引。但任何查询都不会使用索引(相反,它们使用过滤器对整个表进行顺序扫描)。我缺少什么?
这是我的迁移:
class CreateDocuments < ActiveRecord::Migration
def up
create_table :documents do |t|
t.string :title
t.string :tags, array: true, default: []
t.timestamps
end
add_index :documents, :tags, using: 'gin'
(1..100000).each do |i|
tags = []
tags << 'even' if (i % 2) == 0
tags << 'odd' if (i % 2) == 1
tags << 'divisible by 3' if (i % 3) == 0
tags << 'divisible by 4' if (i % 4) == 0
tags << 'divisible …Run Code Online (Sandbox Code Playgroud)