1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Fixed a bug with handling render options

This commit is contained in:
Yehuda Katz + Carl Lerche 2009-05-11 14:48:58 -07:00
parent 6694bd46f5
commit 0f6e764e40
3 changed files with 12 additions and 66 deletions

View file

@ -23,6 +23,15 @@ module ActionController
cattr_accessor :default_charset
self.send(:class_variable_set, "@@default_charset", "utf-8")
cattr_reader :protected_instance_variables
self.send(:class_variable_set, "@@protected_instance_variables", %w(@assigns @performed_redirect @performed_render @variables_added @request_origin @url @parent_controller
@action_name @before_filter_chain_aborted @action_cache_path @_headers @_params
@_flash @_response))
end
module ClassMethods
def protect_from_forgery() end
end
def render_to_body(options)

View file

@ -23,8 +23,8 @@ module ActionController
options[:_template] = template
elsif options.key?(:template)
options[:_template_name] = options[:template]
elsif options.key?(:action)
options[:_template_name] = options[:action].to_s
else
options[:_template_name] = (options[:action] || action_name).to_s
options[:_prefix] = _prefix
end

View file

@ -74,71 +74,8 @@ module ActionController
class UnknownHttpMethod < ActionControllerError #:nodoc:
end
class Base < Http
abstract!
# <HAX>
cattr_accessor :relative_url_root
self.relative_url_root = ENV['RAILS_RELATIVE_URL_ROOT']
cattr_reader :protected_instance_variables
# Controller specific instance variables which will not be accessible inside views.
@@protected_instance_variables = %w(@assigns @performed_redirect @performed_render @variables_added @request_origin @url @parent_controller
@action_name @before_filter_chain_aborted @action_cache_path @_headers @_params
@_flash @_response)
# </HAX>
use AbstractController::Callbacks
use AbstractController::Helpers
use AbstractController::Logger
use ActionController::HideActions
use ActionController::UrlFor
use ActionController::Renderer
use ActionController::Layouts
use ActionController::Rails2Compatibility
class Base
use ActionController::Testing
def self.protect_from_forgery() end
def self.inherited(klass)
::ActionController::Base.subclasses << klass.to_s
super
end
def self.subclasses
@subclasses ||= []
end
def self.app_loaded!
@subclasses.each do |subclass|
subclass.constantize._write_layout_method
end
end
def render(action = action_name, options = {})
if action.is_a?(Hash)
options, action = action, nil
else
options.merge! :action => action
end
super(options)
end
def render_to_body(options = {})
options = {:template => options} if options.is_a?(String)
super
end
def process_action
ret = super
render if response_body.nil?
ret
end
def respond_to_action?(action_name)
super || view_paths.find_by_parts?(action_name.to_s, {:formats => formats, :locales => [I18n.locale]}, controller_path)
end
end
Base.view_paths = FIXTURE_LOAD_PATH