diff --git a/Gemfile b/Gemfile index bcc58ee35..1975f8bac 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0' gem "bundler", ">= 1.5.0" -gem "rails", "5.2.4.1" +gem 'rails', '6.0.2.1' gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5' gem 'rouge', '~> 3.15.0' gem 'request_store', '~> 1.5.0' diff --git a/config/initializers/10-patches.rb b/config/initializers/10-patches.rb index 9af59563e..5193a8085 100644 --- a/config/initializers/10-patches.rb +++ b/config/initializers/10-patches.rb @@ -53,12 +53,13 @@ module ActionView class Resolver def find_all(name, prefix=nil, partial=false, details={}, key=nil, locals=[]) + locals = locals.map(&:to_s).sort!.freeze cached(key, [name, prefix, partial], details, locals) do if (details[:formats] & [:xml, :json]).any? details = details.dup details[:formats] = details[:formats].dup + [:api] end - find_templates(name, prefix, partial, details) + _find_all(name, prefix, partial, details, key, locals) end end end diff --git a/lib/redmine/views/api_template_handler.rb b/lib/redmine/views/api_template_handler.rb index 04727086f..f3776b07d 100644 --- a/lib/redmine/views/api_template_handler.rb +++ b/lib/redmine/views/api_template_handler.rb @@ -20,8 +20,8 @@ module Redmine module Views class ApiTemplateHandler - def self.call(template) - "Redmine::Views::Builders.for(params[:format], request, response) do |api|; #{template.source}; self.output_buffer = api.output; end" + def self.call(template, source) + "Redmine::Views::Builders.for(params[:format], request, response) do |api|; #{source}; self.output_buffer = api.output; end" end end end