我有一个接受图片上传的应用程序.这是使用Unicorn的heroku上的rails 3应用程序.我偶尔会遇到unicorn::clientshutdown异常,我真的不知道是什么导致它们或如何处理它们.我该怎么办?
这是我的unicorn.rb档案:
before_fork do |server, worker|
# Replace with MongoDB or whatever
if defined?(ActiveRecord::Base)
ActiveRecord::Base.connection.disconnect!
Rails.logger.info('Disconnected from ActiveRecord')
end
# If you are using Redis but not Resque, change this
if defined?(Resque)
Resque.redis.quit
Rails.logger.info('Disconnected from Redis')
end
end
after_fork do |server, worker|
# Replace with MongoDB or whatever
if defined?(ActiveRecord::Base)
ActiveRecord::Base.establish_connection
Rails.logger.info('Connected to ActiveRecord')
end
# If you are using Redis but not Resque, change this
if defined?(Resque)
Resque.redis = ENV['REDIS_URI']
Rails.logger.info('Connected to Redis')
end …Run Code Online (Sandbox Code Playgroud) 我的原型设计服务创建了独立的,可上映的iOS网络应用程序.有时他们会在使用时锁定设备.
主页按钮停止工作,应用程序继续工作.以下内容在设备的控制台中重复显示(通过附加到xcode重新启动).
Apr 25 14:34:57 SpringBoard[67] <Warning>: Unable to determine intended instance of com.apple.webapp. Resulting app will be undefined.
我有这个范围:
scope :total_quantity, sum('quantity')
Run Code Online (Sandbox Code Playgroud)
当我跑:
MyModel.total_quantity
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
NoMethodError: undefined method `default_scoped?' for 4:Fixnum
Run Code Online (Sandbox Code Playgroud)
直接运行sum方法有效
MyModel.sum('quantity') # 4
Run Code Online (Sandbox Code Playgroud)
我在default_scoped上找不到任何文档?方法,或者为什么在这里调用它.你知道是否有办法解决这个问题?
我正在使用图形api explorer查询专辑的照片.
graph.facebook.com/[album_id]/photos
Run Code Online (Sandbox Code Playgroud)
结果包括一个"图像"键,其中列出了八个图像版本.最大的列表是2048x1529,但是当我打开实际图像时,它只是604x451下一个最大版本列出的尺寸.
我的应用需要提前知道准确的图像尺寸.如何可靠地找到最大可用图像的尺寸?
我安装了rbenv和ruby-build.然后我安装了ruby 1.9.2p290.一切都很好看.
$ cd my_rails_app
$ ruby -v
1.9.2p290
$ rails server
...
[2011-10-04 13:51:01] INFO WEBrick 1.3.1
[2011-10-04 13:51:01] INFO ruby 1.8.7 (2010-01-10) [universal-darwin11.0]
...
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的应用程序时,它仍然使用ruby 1.8.7.(1.9中存在的方法失败).rails/console中的所有内容都像1.8一样,IRB内的行为类似于1.9.
如何强制我的应用程序使用1.9?
我熟悉RVM,我特别询问rbenv.
我想使用最新版本的 oauth2 gem,我将它添加到我的 gemfile 并运行 bundle install。
Bundler could not find compatible versions for gem "multi_json":
In Gemfile:
oauth2 (= 0.7.0) ruby depends on
multi_json (~> 1.3) ruby
uglifier (>= 0) ruby depends on
multi_json (1.0.4)
Run Code Online (Sandbox Code Playgroud)
哦,好的,我会更新 uglifier bundle update uglifier
Bundler could not find compatible versions for gem "faraday":
In snapshot (Gemfile.lock):
faraday (0.5.7)
In Gemfile:
oauth2 (= 0.7.0) ruby depends on
faraday (~> 0.8) ruby
Run Code Online (Sandbox Code Playgroud)
嗯,那我试试bundle update oauth2?
Bundler could not find compatible versions for gem …Run Code Online (Sandbox Code Playgroud) 我有一个使用标准postgres数据库在Heroku上运行的rails应用程序,其中包含在s3上托管的图像.
我该如何负责任地进行备份?
到目前为止,我每月下载我的应用程序代码,s3文件和数据库快照,并将其存储在外部驱动器上.从s3下载我的文件非常慢,我预计随着时间的推移会变得更糟.
Rails 4 将包含基于加密 cookie 的会话。我们想从活动记录 cookie 存储更改为该存储。有没有办法在不打扰我的应用程序客户的情况下做到这一点?我不想删除所有当前会话。
我正在使用Rails 3资产管道.我遇到了需要以特定方式订购我的Javascript文件的情况,所以我将它们全部显式添加到application.js,如下所示:
//= require admin
//= require application
//= require users
...
//= require_self
...
Run Code Online (Sandbox Code Playgroud)
它在本地工作,但当我推到Heroku时,我得到了一个疯狂的javascript(coffeescript)错误:
Uncaught Error: LoadError: no such file to load -- ["ok", "(function() {\n\n ...
Run Code Online (Sandbox Code Playgroud)
这将继续我所包含的第一个coffeescript文件的全部内容.也就是说,错误消息包含一堆javascript代码.就像它试图包含一个名为一堆代码的文件.
如何修复此错误,还是有更好的方法来手动指定我的javascript包含的顺序?
我有几个before_validation回调函数对我的模型上设置的属性进行操作.当我遇到这样的情况时,我遇到了麻烦:
class Foo < ActiveRecord::Base
before_validation :capitalize_title
validates :title, :presence => true
def capitalize_title
title.upcase
end
end
Run Code Online (Sandbox Code Playgroud)
我编写了一个测试来确保不允许'nil'标题,但是测试得到错误,因为没有定义nil.upcase.我想处理这个错误,但我已经有在before_validation回调之后运行的错误处理.
我不想在我的所有before_validation回调中放置检查以确保数据存在,如果我可以避免它.
是否有一种干净或可接受的方式来处理这种情况?