提交 a9c6a583 编写于 作者: L Lachlan Sylvester

Fix calling cache helper with a relation

上级 93a4dfae
......@@ -229,10 +229,9 @@ def fragment_cache_key(key)
def fragment_name_with_digest(name, virtual_path) #:nodoc:
virtual_path ||= @virtual_path
if virtual_path
names = Array(name.is_a?(Hash) ? controller.url_for(name).split("://").last : name)
name = controller.url_for(name).split("://").last if name.is_a?(Hash)
digest = Digestor.digest name: virtual_path, finder: lookup_context, dependencies: view_cache_dependencies
[ *names, digest ]
[ name, digest ]
else
name
end
......
require 'active_record_unit'
class RelationCacheTest < ActionView::TestCase
tests ActionView::Helpers::CacheHelper
def setup
@virtual_path = "path"
controller.cache_store = ActiveSupport::Cache::MemoryStore.new
end
def test_cache_relation_other
cache(Project.all){ concat("Hello World") }
assert_equal "Hello World", controller.cache_store.read("views/projects-#{Project.count}/")
end
def view_cache_dependencies; end
end
class Project < ActiveRecord::Base
has_and_belongs_to_many :developers, -> { uniq }
def self.collection_cache_key(collection = all, timestamp_column = :updated_at)
"projects-#{collection.count}"
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册