diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-09-01 02:16:42 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-09-01 02:16:42 -0300 |
commit | 78f5b167610a1da4171b52e5c86a35a236f2b7b6 (patch) | |
tree | 35bd06a7e460a19139395232bf2132928a48323f /actionview | |
parent | c47c1d206e87a6602300fc81d3094e1af01dc728 (diff) | |
parent | a9c6a583b6ed4b6482652f98c2aeda1a60268fc9 (diff) | |
download | rails-78f5b167610a1da4171b52e5c86a35a236f2b7b6.tar.gz rails-78f5b167610a1da4171b52e5c86a35a236f2b7b6.tar.bz2 rails-78f5b167610a1da4171b52e5c86a35a236f2b7b6.zip |
Merge pull request #21416 from lsylvester/cache-helper-with-relation
cache helper with relation not working as expected
Diffstat (limited to 'actionview')
-rw-r--r-- | actionview/lib/action_view/helpers/cache_helper.rb | 5 | ||||
-rw-r--r-- | actionview/test/activerecord/relation_cache_test.rb | 18 | ||||
-rw-r--r-- | actionview/test/fixtures/project.rb | 4 |
3 files changed, 24 insertions, 3 deletions
diff --git a/actionview/lib/action_view/helpers/cache_helper.rb b/actionview/lib/action_view/helpers/cache_helper.rb index 636d7d4cc3..e473aeaea9 100644 --- a/actionview/lib/action_view/helpers/cache_helper.rb +++ b/actionview/lib/action_view/helpers/cache_helper.rb @@ -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 diff --git a/actionview/test/activerecord/relation_cache_test.rb b/actionview/test/activerecord/relation_cache_test.rb new file mode 100644 index 0000000000..8e97417b94 --- /dev/null +++ b/actionview/test/activerecord/relation_cache_test.rb @@ -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 diff --git a/actionview/test/fixtures/project.rb b/actionview/test/fixtures/project.rb index c124a9e605..404b12cbab 100644 --- a/actionview/test/fixtures/project.rb +++ b/actionview/test/fixtures/project.rb @@ -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 |