我有一个名为ProfileLastLocation
的模型,我的控制器名为SinglesAroundController
。我的控制器有这样的动作:
def in_area
box = Geocoder::Calculations.bounding_box([params[:cLat], params[:cLng]], params[:distance])
in_area = ProfileLastLocation.within_bounding_box(box)
render in_area.to_json
end
调用控制器操作时 - 我收到错误
undefined method `within_bounding_box' for #<SinglesAroundController:0xb4f107fc>
当我将其余代码复制到错误控制台时 - 它可以工作。所以我打赌我的控制器无法访问ProfileLastLocation
模型。
我的型号代码是
class ProfileLastLocation < ActiveRecord::Base
include SglTablePrefix
belongs_to :user
has_one :profile_setting, through: :user
has_one :profile_mandatory, through: :user
has_one :profile_optional, through: :user
scope :available, -> { joins(:user).where("sgl_users.online = ?", true) }
def self.persons_in_area(cLat, cLng, distance)
box = Geocoder::Calculations.bounding_box([cLat, cLng], distance)
in_area = within_bounding_box(box)
.joins(:profile_mandatory)
.joins(:profile_optional)
in_area
end
geocoded_by :city, :latitude => :latitude, :longitude => :longitude
end
(我使用geocode
gem)。我已经尝试将其定义为self.
方法而没有self.
另外 - 错误显示我的Controller没有给定方法,而我试图在模型上调用它,而不是在控制器上调用它。
如何从给定的控制器访问此模型及其方法?