codeing by 志远.于
module Extract
def get_industries_child(list)
if list.present?
list.map{|c|
{
child_name:c.name,
child_name_cn:c.name_cn,
industry_id:c.industry_id,
id:c.id
}
}
else
[]
end
end
#行业及产品类型
def get_industries_list
Industry.all(:include => :products).map {|item|
{
parent_name:item.name,
parent_name_cn:item.name_cn,
id:item.id,
children:self.get_industries_child(item.products)
}
}
end
def get_interests_child(list)
if list.present?
list.map{|c|
{
child_name:c.name,
child_name_en:c.name_en,
audience_id:c.audience_id,
parent_id:c.parent_audience_id
}
}
else
[]
end
end
#兴趣标签获取兴趣及子项
def get_interests_list
BshareAudience.find_all_by_parent_audience_id(0).map {|item|
{
parent_name:item.name,
parent_name_en:item.name_en,
audience_id:item.audience_id,
parent_id:item.parent_audience_id,
children:self.get_interests_child(BshareAudience.find(:all, :conditions => ["parent_audience_id = ? ", item.audience_id]))
}
}
end
#缓存兴趣列表
def get_interests_cache
self.cache("INTERESTS_CACHE"){self.get_interests_list}
end
#缓存媒体列表
def get_interests_cache
self.cache("INDUSTRY_CACHE"){self.get_industries_list}
end
def cache(key, expires_in=5.minute, &get_val_block)
_cache = Rails.cache
_key = key.to_sym
_val = _cache.fetch(_key)
if _val.nil?
_val = get_val_block.call
_cache.write(_key, _val, expires_in: expires_in)
end
_val
end
end
数据组装与缓存例子
猜你喜欢
转载自schooltop.iteye.com/blog/2241618
今日推荐
周排行