- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我的应用程序中有许多多行 ActiveRelation 查询方法,我不确定编写这些方法的最惯用方式。看看这个例子:
def postal_code_ids_within(miles)
nearby_postal_codes = PostalCode.where("latitude > :min_lat and latitude < :max_lat",
min_lat: (latitude - (miles.to_f / MILES_PER_DEGREE_LATITUDE.to_f / 2.to_f)),
max_lat: (latitude + (miles.to_f / MILES_PER_DEGREE_LATITUDE.to_f / 2.to_f)))
nearby_postal_codes = nearby_postal_codes.where("longitude > :min_lon and longitude < :max_lon",
min_lon: (longitude - (miles.to_f / MILES_PER_DEGREE_LONGITUDE.to_f / 2.to_f)),
max_lon: (longitude + (miles.to_f / MILES_PER_DEGREE_LONGITUDE.to_f / 2.to_f)))
nearby_postal_codes.pluck(:id)
end
我觉得有点不对劲。从中返回 ActiveRelation 对象的 block 似乎是惯用的,但我还没有看到这种方法。
什么是标准?
最佳答案
根据 Brian 的建议,这更易读并且效果很好。
scope :near, lambda { |postal_code, miles|
degree_offset = miles / MILES_PER_DEGREE / 2
where("latitude > :min_lat and latitude < :max_lat and longitude > :min_lon and longitude < :max_lon",
min_lat: postal_code.latitude - degree_offset,
max_lat: postal_code.latitude + degree_offset,
min_lon: postal_code.longitude - degree_offset,
max_lon: postal_code.longitude + degree_offset)
}
def postal_code_ids_within(miles)
self.class.near(self, miles).pluck(:id)
end
关于ruby-on-rails - 编写多行 ActiveRelation 查询的惯用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040481/
我刚学rails。我非常喜欢 Rails。在几乎所有情况下,它都完全破坏了 Java 和相关的生产力解决方案——我对 Java 有十多年的经验,真的非常快……这说明了一些问题!如果 Rails 无法做
我是新来的 rails 。玩得很开心。查询API虽然给了我 一些麻烦。我一直在快速缩放并做很多事情, 但这是我第一次花费数小时试图弄清楚。 它不像我以前用过的任何东西——普通的 SQL 或 Hiber
假设我们在 Controller 的某处有 @posts = Post.published.per(10).page(params[:page])。稍后我们需要更新所有已发布的帖子 (Post.pub
我需要哈希化 ActiveRelation!例如我有这样的AR arel = MyClass.page(options[:page]).per(options[:per]) 这里有一种简单的方法可以用
我有名为 User、Activity 和 Task 的模型,我可以执行以下操作 > puts Activity.joins(:task).to_sql SELECT "activities".* FR
我正在尝试获取可能仅与特定用户相关的特定关键字并返回关系。 Keyword.where(text: ['key1', 'key2']) .tagged_users(:u, :rel) .whe
我的应用程序中有许多多行 ActiveRelation 查询方法,我不确定编写这些方法的最惯用方式。看看这个例子: def postal_code_ids_within(miles) nearby
我需要能够使用 ActiveRelation 将任意数量的子选择与 UNION 链接起来。 我对 ARel 的实现有点困惑,因为它似乎假设 UNION 是一个二进制运算。 但是: ( select_s
当我向 will_paginate 传递一个 ActiveRelation 时,它总是调用它的 #count 方法并访问数据库以找出项目的总数。但是这个操作需要时间,而且我已经缓存并准备好了总数。我可
我查看了 Arel 源代码和一些 Rails 3.0 的 activerecord 源代码,但关于 Arel 是否会改变我们使用 includes() 的能力,我似乎无法为自己收集到一个好的答案,
我有一个模型: class Event has_many :participations has_many :participants, :through => :participat
我的评分系统很简单,用户喜欢或不喜欢这篇文章。 基本上,我有这样的东西,而且效果很好: class Article has_many :ratings def self.by_ratings
我是一名优秀的程序员,十分优秀!