Tag: heroku

基于数据库模型的动态Rails路由

所以我正在构建一个需要基于两种不同类型的路由的Rails站点 我有一个语言模型和一个分类模型 因此,我需要能够访问语言路线/ruby以查看顶级ruby资源,还可以访问/书籍以查看所有语言的热门书籍 我试过这样的路线 get ‘/:language’, to: “top_voted#language” get ‘/:category’, to: “top_voted#category” 问题是逻辑无法弄清楚两者之间的差异,并在后端引起了一些冲突 我也尝试过这个 Language.all.each do |language| get “#{language.name}”, to: “top_voted#language”, :language => language.name end Category.all.each do |category| get “#{category.name}”, to: “top_voted#category”, :category => category.name end 但问题是我们正在部署它的Heroku不允许在路由中进行数据库调用。 有更简单的方法吗? 我们需要能够以某种方式动态生成这些路由。

Heroku toolbelt更新失败

我正试图让Heroku工具带工作,这是一场彻头彻尾的噩梦。 安装成功运行,但是当我运行heroku更新时,我得到: $ heroku update failed ! undefined method `output_with_arrow’ for # 我已经尝试了一切,包括卸载我的heroku gem并通过以下方式删除工具带: rm -rf /usr/loca/heroku sudo rm /usr/bin/heroku 这非常令人沮丧。 我的环境是Mac OS 10.7 Lion和: $ ruby -v ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0] $ which ruby /Users/J/.rvm/rubies/ruby-1.9.3-p125/bin/ruby $ heroku version heroku-gem/2.19.2 $ which heroku /usr/bin/heroku

如何将带有密钥的json文件上传到Heroku

我正在构建一个rails应用程序,它使用适用于Ruby的Google Api客户端库从Google Analytics中提取数据。 我正在使用OAuth2,可以在本地计算机上开发所有工作。 我的问题是该库使用下载的文件client_secrets.json来存储两个密钥。 问题:我正在使用Heroku,需要一种方法将文件送到生产服务器。 由于项目是公开的,我不想将此文件添加到我的github仓库。 如果有办法暂时将文件添加到git,请推送到Heroku,然后从git中删除就可以了。 我的感觉是密钥将在提交中,并且很难阻止在github上显示。 尝试:到目前为止,我可以告诉你不能通过Bash控制台向Heroku发送文件。 我相信当你这样做时你得到一个新的Dyno,你添加的任何东西都只是暂时的。 我试过这个但是无法让SCP正常工作,所以不是百分之百地确定这一点。 尝试:我查看了将JSON文件存储在Environment或Config Var中,但无法使其工作。 如果有人有想法,这似乎是最好的方式。 当ruby将JSON转换为字符串或哈希时,我经常遇到麻烦,所以我可能只需要指导。 试过:另外我试图找出一种方法来从JSON文件中提取密钥,将它们放入Config Vars,并将JSON文件添加到git。 我想不出把ENV[“KEY”]放在JSON文件中的方法。 示例代码 Google库有一个加载JSON文件以创建授权客户端的方法。 然后客户端获取令牌(或提供授权URL)。 client_secrets = Google::APIClient::ClientSecrets.load(‘client_secrets.json’) auth_client = client_secrets.to_authorization **请注意,Google页面上的示例未显示文件名,因为它使用已设置为路径的默认ENV Var 我认为如果ClientSecrets.load()方法只接受JSON,一个可以进入Config Var的字符串或哈希,这将会更加容易。 不幸的是,似乎总是想要一个文件路径。 当我向它提供JSON,字符串或哈希时,它会爆炸。 我看到有人在这里用p12键来解决这个问题 ,但我不确定如何在我的情况下复制它。 没有试过:我唯一的另一个(除了转移到AWS)是将JSON文件放在AWS上并在需要时让它拉出来。 我不确定这是否可以动态完成,或者当rails服务器启动时是否需要下拉文件。 似乎工作太多,但此时我花了几个小时才准备尝试。 这是我正在处理的具体控制器: https : //github.com/dladowitz/slapafy/blob/master/app/controllers/welcome_controller.rb

Gem :: LoadError:为数据库适配器指定’sqlite3’,但未加载gem

我正在尝试将我的应用程序推送到heroku但我收到此消息。 Gem::LoadError: Specified ‘sqlite3’ for database adaptor, but the gem is not loaded. 但是我没有。 我的database.yml文件中没有sqlite3 development: adapter: postgresql encoding: unicode database: blog_development pool: 5 timeout: 5000 host: localhost test: adapter: postgresql database: blog_test pool: 5 timeout: 5000 production: adapter: postgresql database: blog_production pool: 5 timeout: 5000 我的适配器名称是psotgresql。 我甚至自己打开了文件 cat database.yml 我搜索了文件,但找不到postgresql。 这是我的gemfile ruby ‘2.1.0’ gem […]

使用自定义域部署到Heroku

我从My-app.heroku.com运行了应用程序并且它可以工作,我在我的域之间设置了DNS,但每当我从我指定的域打开我的应用程序时,heroku说“请参阅文档,如果你需要帮助部署。“ 我已经看了几次文档,但是我没理解。 我错过了什么步骤?

从Heroku应用程序中访问当前git提交号

我知道slug编译器在创建一个heroku slug时会删除.git目录,但是有没有办法配置Heroku以便我可以从我的脚本中访问当前运行的git commit编号? 我希望能够在我的sinatra应用程序(在Heroku中运行)上有一个小链接,其中显示“运行版本e72fb274a0 ”(或类似的东西)。 如何检索这个,或强制slug编译器将其添加到环境变量? 进展: 我认为最好的方法是在删除.git目录之前创建一个自定义buildpack,它将git commit版本号写入heroku slug。 我试过这样做(看看我的ruby buildpack的分支 )但是我添加的行 – 第23行 – 似乎没有完成这项工作。 Heroku看到并使用新的buildpack,但似乎没有将文件写入slug。 任何人都知道为什么我的自定义buildpack没有按预期工作? 谢谢, J.P

ExecJS :: RuntimeError:SyntaxError:意外的标记:operator(>)(行:22342,col:24,pos:826182)

相当新的rails开发者在这里。 我试图在Heroku上有效地部署我的rails应用程序时遇到此错误消息。 我的猜测是,当JS资产预编译时会遇到一些语法错误。 我在SO上发现了一个类似的问题,但它似乎仍未解决,我已经尝试了回复中的所有建议。 任何帮助表示赞赏。 这是我的问题的命令行跟踪: ExecJS::RuntimeError: SyntaxError: Unexpected token: operator (>) (line: 22342, col: 24, pos: 826182) Error at new JS_Parse_Error (/tmp/execjs20161001-3-1oidjycjs:3623:11948) at js_error (/tmp/execjs20161001-3-1oidjycjs:3623:12167) at croak (/tmp/execjs20161001-3-1oidjycjs:3623:22038) at token_error (/tmp/execjs20161001-3-1oidjycjs:3623:22175) at unexpected (/tmp/execjs20161001-3-1oidjycjs:3623:22263) at expr_atom (/tmp/execjs20161001-3-1oidjycjs:3623:31244) at maybe_unary (/tmp/execjs20161001-3-1oidjycjs:3624:1752) at expr_ops (/tmp/execjs20161001-3-1oidjycjs:3624:2523) at maybe_conditional (/tmp/execjs20161001-3-1oidjycjs:3624:2615) at maybe_assign (/tmp/execjs20161001-3-1oidjycjs:3624:3058) at maybe_assign (/tmp/execjs20161001-3-1oidjycjs:3624:3232) at expression […]

IMAP闲置如何工作?

有人可以向我解释IMAP IDLE的工作原理吗? 它为每个打开的连接分配一个新进程吗? 我可以以某种方式使用eventmachine吗? 我正在尝试使用后台工作者在heroku上的ruby中实现它。 有什么想法吗?

heroku db:拉不工作

heroku db:pull postgresql://root:@localhost/db_name 此命令显示此消息后 /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb:50:警告:未来版本的parenthesize参数Loaded Taps v0.3.13警告:数据输入数据库’postgresql:// root:@ localhost / db_name’将被覆盖,无法恢复。 你确定要继续吗? (Y / N)? y无法连接数据库:Sequel :: AdapterNotFound – > LoadError:没有要加载的文件 – 续集/ adapters / postgresql 如何使用db:pull

Heroku:找不到Rakefile(但在本地工作)

我使用Rails 3.1.3克隆了我自己的一个应用程序,在堆栈雪松上的Heroku上创建了一个应用程序,将其推送到Heroku,然后尝试运行 heroku run rake db:migrate并收到此错误消息 No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb) /usr/local/lib/ruby/1.9.1/rake.rb:2367:in `raw_load_rakefile’ /usr/local/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile’ /usr/local/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling’ /usr/local/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile’ /usr/local/lib/ruby/1.9.1/rake.rb:1991:in `run’ /usr/local/bin/rake:31:in ` 当我运行rake db:migrate时,我在应用程序的根目录中。 该应用程序适用于localhost。 我有什么想法可能做错了吗? 我注意到的唯一奇怪的是,在错误消息中,它指的是ruby/1.9.1/ 但是,我使用rvm和ruby 1.9.2创建应用程序,当我做ruby -v ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0] 我的Gemfile source ‘http://rubygems.org’ gem ‘rails’, ‘3.1.3’ # Bundle edge Rails […]