Tag: rake

在rake任务中使用open-uri 404错误…导致它的原因是什么?

我有一个rake任务,从API获取JSON数据,解析它,并将其保存到数据库: task :embedly => :environment do require ‘json’ require ‘uri’ require ‘open-uri’ Video.all.each do |video| json_stream = open(“http://api.embed.ly/1/oembed?key=08b652e6b3ea11e0ae3f4040d3dc5c07&url=#{video.video_url}&maxwidth=525”) ruby_hash = JSON.parse(json_stream.read) thumbnail_url = ruby_hash[‘thumbnail_url’] embed_code = ruby_hash[‘html’] video.update_attributes(:thumbnail_url => thumbnail_url, :embed_code => embed_code) end end 当我运行rake任务时,我在堆栈跟踪中得到此错误,我不知道是什么导致它: rake aborted! 404 Not Found /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:277:in `open_http’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:616:in `buffer_open’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:164:in `open_loop’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:162:in `catch’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:162:in `open_loop’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:132:in `open_uri’ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:518:in `open’ […]

rake db:migrate error(未找到函数’inotify_init’)

我刚刚完成了在我的旧Mac书上设置我的rails环境并遇到了这个错误。 我安装了FFI和rb-inotify。 我也再次运行了bundle install。 我看了看 https://github.com/ffi/ffi/issues/66 和 https://groups.google.com/forum/?fromgroups=#!topic/ruby-ffi/gj3_k34o80k 这两个都表明这是一个特定于Linux的API。 有一个建议在第二个链接上说我应该删除那个gem以及依赖它的东西,但是我对删除似乎依赖它的FFI犹豫不决。 您建议采取什么行动? 非常感谢有关此事的任何建议。 编辑:我正在运行rails 3.2.7(今晚更新到3.2.11)。 编辑2:我发现: Rubygems:如何添加特定于平台的依赖? 。 这有用吗? 编辑3:你认为它可能与rbenv有关吗? 编辑4:我将我的开发gem从rb-inotify更改为rb-fsevent,运行bundle install然后执行db:migrate。 它继续运行迁移。 嗯……我问我的团队成员使用macs尝试执行rake db:migrate,因为我们的Linux开发人员将rb-inotify添加到我们的gem集合中。 此链接可能对以这种方式提供帮助的人有所帮助: https : //supportbee.com/devblog/2012/07/18/using-platform-dependent-gems-rb-inotify-and-rb-fsevent/ 编辑5:我一直在看卫兵gem ,特别是这部分: 我添加了这个,它将执行rake db:migrate,但我仍然得到一个非常类似的错误列表: Could not open library ‘libgtk-x11-2.0’: dlopen(libgtk-x11-2.0, 13): image not found. 我想我正在进步到一个完整的解决方案! 编辑7:看看这个stackoverflow问题是由于libnotify gem导致的剩余错误: 升级到Rails 3.1后图像未找到错误,如何修复? 。 它建议这样做: gem ‘libnotify’ if /linux/ =~ RUBY_PLATFORM […]

rake db:test:准备不创建所有表

注意:使用Rails 3.0.7,Postgresql 8.4.4-1,rake 0.8.7。 试图让rails测试工作。 命令rake db:test:prepare似乎工作正常 – $ rake db:test:prepare -t (在/ home / beau /看) **调用db:test:prepare(first_time) **调用db:abort_if_pending_migrations(first_time) **调用环境(first_time) **执行环境 **执行db:abort_if_pending_migrations **执行db:test:prepare **调用db:test:load(first_time) **调用db:test:purge(first_time) **调用环境 **执行db:test:purge **执行db:test:load **调用db:schema:load(first_time) **调用环境 **执行db:schema:load 注意:CREATE TABLE将为串行列“slugs.id”创建隐式序列“slugs_id_seq” 注意:CREATE TABLE / PRIMARY KEY将为表“slugs”创建隐式索引“slugs_pkey” 但是有些表没有被创建。 这些是“开发”表: $ psql -d看起来-U admin -c’\ d’ 关系清单 架构| 名称| 输入| 所有者 ——– + ——————- + […]

无法激活mysql2(〜> 0.3.6),已经在Rails 3.1中激活了mysql2-0.3.2

我只是试图获得在3.1下运行的rails应用程序的最基本的shell,当我运行bundle exec rake db:migrate时,我遇到了这个奇怪的错误 Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (can’t activate mysql2 (~> 0.3.6), already activated mysql2-0.3.2. Make sure all dependencies are added to Gemfile.) 我在这里和其他地方读到的所有post都说我应该使用较新的mysql2适配器用于rails 3.1,所以我有 – gem ‘mysql2’, ‘0.3.2’ 在我的gemfile中。 有些post建议使用 – gem ‘mysql2’, ‘~> 0.3’ 但这给我带来了同样的错误。 gem安装在 – /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/mysql2-0.3.2 有人建议我再次在我的gem文件中切换该行,这次是 – gem ‘mysql2’, ‘< 0.3' 但是当我这样做时,运行bundle install,然后尝试再次运行迁移,我得到 – An […]

rake db:创建失败,postgresql 8.4的身份validation问题

首先,请原谅我的完全无声。 我真的试图找到一个解决方案,但现在我陷入困境,完全无能为力。 我正在尝试在远程服务器上部署rails 3应用程序; 在我的本地VM上开发时,没有问题。 但现在,当我试图跑 rake db:create 它失败了,有错误(这里翻译,因为我是法国人): FATAL : password authentication failed for user <> 这是我的database.yml: login: &login adapter: postgresql username: mylogin password: mypassword host: localhost port: 5432 encoding: UTF8 development: <<: *login database: somesite_development test: <<: *login database: somesite_test production: <<: *login database: somesite_production 使用命令行工具“createuser”在postgre-side创建了用户“mylogin”。 它被授权创建dbs。 postgresql.conf配置服务器监听localhost。 我用pg_hba.conf尝试了很多东西,没有用 – 无论在127.0.0.1上用户“mylogin”使用的方法(ident,密码,md5),身份validation都失败了 – 尽管我从未遇到过连接/创建dbs的问题PSQL。 […]

仅生成现有模型/控制器的测试

我有一个基于别人工作的Rails3应用程序。 出于某种原因,他们决定不提供应用程序的测试,我觉得令人沮丧。 我希望能够做的是为所有现有的控制器和模型构建测试,这样我就可以在test :: unit中自己创建测试。 我不想重新创建模型或控制器,只需创建测试。 我是Rails的新手,并且已经找到了可能会这样做的rake命令,但到目前为止一切都没有运气。 任何建议/方向最受赞赏。

在推送到Heroku之前自动预编译资产

在推送到Heroku之前,是否可以在Rails应用程序中自动预编译我的资产? 我总是忘记这样做,所以当我输入git push heroku master ,它会首先运行rake assets:precompile ; git commit add . ; git commit -a -m “Precompile.” rake assets:precompile ; git commit add . ; git commit -a -m “Precompile.” 或者那种效果。 有没有人实现这样的解决方案? 可能没有钩子? 虽然我怀疑这是唯一的方法。

如何构建任务’elasticsearch:import:model’

好吧,我安装了elasticsearch-rails gem(版本0.1.5),我可以清楚地看到gem文件中的任务。 但是当我跑步的时候 bundle exec rake environment elasticsearch:import:model CLASS=’Comment’ 我收到这个错误。 运行rake environment -D也没有向我显示任务。 elasticsearch正在运行,如果我curlhttp://localhost:9200它会响应我。 为什么这不起作用?

“预编译资产时,命令失败,状态为()”

在生产高效的盒子上编译资产时,我遇到了类似很多用户的类似问题。 唯一的区别是我无法从跟踪中得到任何提示来解决问题。 rake assets:precompile RAILS_ENV=production –trace ** Invoke assets:precompile (first_time) ** Execute assets:precompile /usr/local/rbenv/versions/1.9.3-p362/bin/ruby /usr/local/rbenv/versions/1.9.3-p362/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets –trace ** Invoke assets:precompile:all (first_time) ** Execute assets:precompile:all ** Invoke assets:precompile:primary (first_time) ** Invoke assets:environment (first_time) ** Execute assets:environment ** Invoke environment (first_time) ** Execute environment ** Invoke tmp:cache:clear (first_time) ** Execute tmp:cache:clear ** Execute assets:precompile:primary rake […]

Rake db:test:准备任务删除开发数据库中的数据

在我的config / database.yml中使用Rails 3.2.6应用程序中的简单Rails sqlite3配置示例 ,我曾经重置我的开发数据库,​​重新播种它,并通过执行以下操作来准备我的测试数据库: $ rake db:reset $ rake db:test:prepare 在看了这篇关于在不同的数据库引擎上用Travis CI测试Rails应用程序的博客文章之后,我想我会试一试,所以我使用Homebrew安装了mysql和postgresql(我在OSX Snow Leopard上),设置它们根据brew info说明。 我安装了相关的gem,并按如下方式配置了数据库和Travis文件: 的Gemfile # … group :development, :test do # … gem ‘sqlite3’, ‘1.3.6’ end group :test do # … # Test mysql on Travis CI gem ‘mysql2’, ‘0.3.11’ end group :test, :production do # … # Test postgres […]