在Rails中,您可以找到使用Model.size
和的记录数Model.count
.如果您正在处理更复杂的查询,那么使用一种方法优于另一种方法是否有任何优势?他们有什么不同?
例如,我有用户的照片.如果我想显示一个用户表和他们有多少张照片,那么运行的实例user.photos.size
会更快还是更慢user.photos.count
?
谢谢!
所以,我发现了几个在Rails 2中查找随机记录的例子 - 首选方法似乎是:
Thing.find :first, :offset => rand(Thing.count)
Run Code Online (Sandbox Code Playgroud)
作为一个新手,我不知道如何使用Rails 3中的新查找语法来构造它.
那么,找到随机记录的"Rails 3 Way"是什么?
我知道您可以要求ActiveRecord使用以下命令在控制台中列出表:
ActiveRecord::Base.connection.tables
Run Code Online (Sandbox Code Playgroud)
是否有一个命令可以列出给定表中的列?
假设我有以下哈希:
{ :foo => 'bar', :baz => 'qux' }
Run Code Online (Sandbox Code Playgroud)
如何动态设置键和值以成为对象中的实例变量...
class Example
def initialize( hash )
... magic happens here...
end
end
Run Code Online (Sandbox Code Playgroud)
...所以我最终在模型中得到以下内容......
@foo = 'bar'
@baz = 'qux'
Run Code Online (Sandbox Code Playgroud)
?
这似乎相当简单,但我不能让它出现在Google上.
如果我有:
class City < ActiveRecord::Base
has_many :photos
end
class Photo < ActiveRecord::Base
belongs_to :city
end
Run Code Online (Sandbox Code Playgroud)
我想找到所有没有照片的城市.我很乐意打电话给...
City.where( photos.empty? )
Run Code Online (Sandbox Code Playgroud)
......但那不存在.那么,你如何做这种查询?
更新: 现在找到原始问题的答案,我很好奇,你如何构建逆?
IE:如果我想创建这些作为范围:
scope :without_photos, includes(:photos).where( :photos => {:city_id=>nil} )
scope :with_photos, ???
Run Code Online (Sandbox Code Playgroud) 非常基本的问题,但我一直无法找到答案.使用Transit我可以将文件从一个AWS账户上的一个S3存储桶"移动"到另一个AWS账户上的另一个S3存储桶,但实际上它是从第一个下载文件然后将它们上传到第二个.
有没有办法将文件直接从一个S3帐户移动到另一个S3帐户而无需在其间下载?
有谁知道如何做到这一点?到目前为止,我还没有通过谷歌找到任何有用的东西.
我真的想设置一个本地仓库并用git push
它将它发布到S3,这个想法是对资产进行本地版本控制,而在S3上进行远程存储.
可以这样做,如果是这样,怎么办?
有谁知道如何在Rails 3.1中向资产管道添加另一个文件夹?
我想以app/assets/fonts
同样的方式app/assets/images
服务.
更新:5-7-2013
只是为将来发现此问题以明确添加资产路径的人添加一些说明,在application.rb文件中:
config.assets.paths << "#{Rails.root}/app/assets/fonts"
Run Code Online (Sandbox Code Playgroud)
但是,由于上面的路径app/assets
不在你明确添加它,你只需要重新启动rails应用程序,这样Sprockets就可以把它拿起来.
你必须明确地添加是外面的路径app/assets
,lib/assets
或者vendor/assets
,只是记得,虽然链轮拿起新的文件夹是存在,当你的应用程序中加载,在我的经验,它不拿起资产路径新的文件夹,而不重启.
在我的Rails应用程序中,我遇到了几次问题,我想知道其他人如何解决:
我有一些值是可选的记录,所以有些记录有一个值,有些记录的值为null.
如果我在某些数据库上按该列排序,则首先对空值进行排序,在某些数据库上对空值进行排序.
例如,我有照片可能属于或可能不属于集合,即有一些照片在哪里collection_id=nil
和一些在哪里collection_id=1
等.
如果我Photo.order('collection_id desc)
在SQLite上做的话我最后得到空值但是在PostgreSQL上我先得到空值.
是否有一个很好的标准Rails方法来处理这个并在任何数据库中获得一致的性能?
我刚刚开始在我的rails应用程序中使用New Relic RPM,他们提供的一个指标是"吞吐量RPM".我到处搜索并彻底梳理了New Relic文档,我找不到RPM吞吐量指标的任何书面解释.
是"每分钟请求数"还是"每毫秒请求数"或其他什么?**内燃机和每分钟转数使得在Google中无法找到答案.
什么是吞吐量RPM?是一个更高或更低的数字,什么是一些平均基准,等?
我非常感谢这个指标的解释,谢谢!!