无法从控制器调用模型方法

时间:2015-10-22 15:47:31

标签: ruby-on-rails ruby model-view-controller

我有一个名为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没有给定方法,而我试图在模型上调用它,而不是在控制器上调用它。

如何从给定的控制器访问此模型及其方法?

0 个答案:

没有答案