Ruby on rails 与Memcached的活动记录关联
您好,rails模型协会,我知道我可以做到: 例如,模型类页面Ruby on rails 与Memcached的活动记录关联,ruby-on-rails,Ruby On Rails,您好,rails模型协会,我知道我可以做到: 例如,模型类页面 class Page < ActiveRecord::Base has_many :parts end Page.first.parts.class实际上返回数组。它如何激活零件模型的方法?我在网上找到了类似的帖子 我的问题是,当我尝试使用memcache来缓存parts方法的响应时。然后,当我调用Page.first.parts.find_by_name('body')时,它告诉我数组没有方法find_by_name
class Page < ActiveRecord::Base
has_many :parts
end
Page.first.parts.class实际上返回数组。它如何激活零件模型的方法?我在网上找到了类似的帖子
我的问题是,当我尝试使用memcache来缓存parts方法的响应时。然后,当我调用Page.first.parts.find_by_name('body')时,它告诉我数组没有方法find_by_name。我如何解决这个问题?我需要缓存,因为这是一个使用率很高的方法
class Page
def parts_with_cache
Rails.cache.fetch("parts_for_page_#{id}", {:expires_in => 1.minutes}) do
parts_without_cache
end
end
alias_method_chain :parts, :cache
end
由于您将返回一个与页面对象关联的Parts对象数组,该数组未经part name过滤,因此只需对结果集执行一个array方法即可
body_parts = Page.first.parts.select{ |part| part.name == 'body' }
由于您将返回一个与页面对象关联的Parts对象数组,该数组未经part name过滤,因此只需对结果集执行一个array方法即可
body_parts = Page.first.parts.select{ |part| part.name == 'body' }