数据建模与优化:从基础到高级策略
1. 地址相关方法与查询
在数据处理中,经常会遇到需要根据地址信息进行查询的场景。为了实现根据邮政编码和距离查询相关模型的功能,我们可以定义一个名为 acts_as_address 的模块方法。以下是具体的代码实现:
module ClassMethods
def acts_as_address
# validation / association code was here...
# define the find_within_miles proc for all models that contain addresses
find_within_miles = Proc.new do |zip, miles|
z = ZipCode.find_by_zip(zip)
!z ? [] :
self.class.find(:all,
:include => :zip_code,
:conditions => ["miles_between_lat_long(?,
zip_codes.latitude, zip_codes.longitude) < ?",
z.latitude, z.longitude, miles])
end
self.send(:
超级会员免费看
订阅专栏 解锁全文
1588

被折叠的 条评论
为什么被折叠?



