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

时间:2016-05-26 09:08:56

标签: ruby-on-rails ruby-on-rails-4 rails-engines

从模型中获取数据时出现错误,这是我创建了" ProductSearch"引擎和ProductSearch内部我有控制器,模型,帮助器和视图。

现在控制器方法出错了,而下面执行的是控制器方法的代码

  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 Model的代码

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

1 个答案:

答案 0 :(得分:1)

如果返回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

但在你的情况下,范围正在返回一个条件

  

{:conditions =&gt; {:retailer_id =&gt; [1,2]}}

所以'all'方法不起作用。