Merge pull request #21416 from lsylvester/cache-helper-with-relation

cache helper with relation not working as expected
This commit is contained in:
Rafael Mendonça França 2015-09-01 02:16:42 -03:00
commit 78f5b16761
3 changed files with 24 additions and 3 deletions

View File

@ -229,10 +229,9 @@ module ActionView
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

View File

@ -0,0 +1,18 @@
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

View File

@ -1,3 +1,7 @@
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