{: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'方法将不起作用。
我在从模型中获取数据时遇到错误,这是我创建了一个 "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'方法将不起作用。