{:conditions=>{:retailer_id=>[1, 2]}}:Hash In rails Engine 的未定义方法`all'

undefined method `all' for {:conditions=>{:retailer_id=>[1, 2]}}:Hash In rails Engine

我在从模型中获取数据时遇到错误,这是我创建了一个 "ProductSearch" 引擎的场景,在 ProductSearch 中我有控制器、模型、助手和视图。

现在controller方法在执行时报错 下面是controller方法的代码

  def stores_in_mall
    @stores ||= TenantRetailigenceRetailer.
        for_property(@property).all(:include => :retailer, :order => 'retailers.name').
        reject{ |s| s.retailer.nil? || s.retailer.suite.nil? }
  end

这是 ProductSearch 模型的代码

module ProductSearch
  class TenantRetailigenceRetailer < ActiveRecord::Base
      belongs_to :retailer
      belongs_to :retailigence_retailer
      attr_accessor :tenant_id, :retailigence_retailer_id
      scope :for_property, lambda{ |property|
                                 { :conditions => { :retailer_id => property.retailers.map(&:id) } }
                               }

      def name
        retailer.name
      end
  end
end

如果它们 return activerecord 关系

,您可以使用多个作用域
class Person < ActiveRecord::Base
  scope :find_someone, -> (id) { where(id: id) }
  scope :find_another, -> { where(type: "xyz")}
end

现在您可以像这样一起使用它们

Person.find_someone(1).find_another.all

但在您的情况下,范围是 return条件

{:conditions=>{:retailer_id=>[1, 2]}}

因此'all'方法将不起作用。