[英]Rails Active Record .pluck not working with polymorphic model using geocoder
以下代碼行引發錯誤,我不明白為什么。
fav_arr.push(Address.near([@address.latitude, @address.longitude], 5).where(addressable_type: 'User').pluck(:addressable_id))
ActiveRecord :: StatementInvalid:PG :: UndefinedColumn:錯誤:列“距離”不存在
一旦添加.pluck(:addressable_id),它就會引發錯誤,即距離列不存在。
這個工作原理:
Address.near([@address.latitude, @address.longitude], 5).where(addressable_type: 'User').map{ |add| fav_arr << add.addressable_id }
這是SQL查詢
Address.near([@address.latitude, @address.longitude], 5).where(addressable_type: 'User').to_sql :
: SELECT "addresses"."addressable_id" FROM "addresses" WHERE (addresses.latitude BETWEEN 45.42903640844458 AND 45.57376819155542 AND addresses.longitude BETWEEN -73.68277080563716 AND -73.47627419436283 AND (3958.755864232 * 2 * ASIN(SQRT(POWER(SIN((45.5014023 - addresses.latitude) * PI() / 180 / 2), 2) + COS(45.5014023 * PI() / 180) * COS(addresses.latitude * PI() / 180) * POWER(SIN((-73.5795225 - addresses.longitude) * PI() / 180 / 2), 2)))) BETWEEN 0.0 AND 5) AND "addresses"."addressable_type" = $1 ORDER BY distance ASC
謝謝您的幫助
請嘗試這個
Address.near([@address.latitude, @address.longitude], 5).where(addressable_type: 'User').reorder('').pluck(:addressable_id)
擴展@engineersmnky注釋,near和pluck都會修改select語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.