2016-09-29 34 views
0

所以,我有這種擔憂和範圍導軌 - 在SQL查詢字符串使用自列在關注範圍

module GeocoordinatesHelpers 
    extend ActiveSupport::Concern 

    included do 
    scope :within_range, -> (lat, lon, range) { where("(6371.0 * 2 * ASIN(SQRT(POWER(SIN((self.latitude - :lat) * PI()/180/2), 2) + COS(self.latitude * PI()/180) * COS(:lat * PI()/180) * POWER(SIN((self.longitude - :lon) * PI()/180/2), 2)))) <= :range", {lat: lat, lon: lon, range: range})} 
    end 
end 

,我需要在幾個車型

使用是否有可能參照模型列的範圍被稱爲反對?等,其中一些實際工作

至於原因,替換其中self位,我不能只使用地址解析器寶石

+0

在這種情況下,'self'將是您將該模塊包含到 –

回答

1

如果你真的需要完整的列名,嘗試改變self#{table_name}

+0

'$ {table_name}'中的類?全局變量?爲什麼這會有什麼用處? –

+0

將在包含的類的範圍內調用'#{table_name}'。 Ops ..那裏有一個錯字。 –

+0

完美,這就是我一直在尋找的,謝謝 – Jarfis