Ruby on Rails 5.2 - AbstractController::Rendering

मॉड्यूल AbstractController :: प्रतिपादन




ruby

मॉड्यूल AbstractController :: प्रतिपादन

शामिल मॉड्यूल:
ActionView::ViewPaths

स्थिरांक

DEFAULT_PROTECTED_INSTANCE_VARIABLES

सार्वजनिक प्रवृत्ति के तरीके

रेंडर (* आर्ग्स, और ब्लॉक) शो सोर्स
# File actionpack/lib/abstract_controller/rendering.rb, line 23
def render(*args, &block)
  options = _normalize_render(*args, &block)
  rendered_body = render_to_body(options)
  if options[:html]
    _set_html_content_type
  else
    _set_rendered_content_type rendered_format
  end
  self.response_body = rendered_body
end

तर्क, विकल्प को सामान्य करता है और फिर #render_to_body और #render_to_body में परिणाम self.response_body

रेंडर_टो_बॉडी (विकल्प = {}) स्रोत दिखाएं
# File actionpack/lib/abstract_controller/rendering.rb, line 50
def render_to_body(options = {})
end

वास्तविक टेम्पलेट रेंडरिंग करता है।

रेंडर_टो_स्ट्रिंग (* आर्ग्स, और ब्लॉक) शो सोर्स
# File actionpack/lib/abstract_controller/rendering.rb, line 44
def render_to_string(*args, &block)
  options = _normalize_render(*args, &block)
  render_to_body(options)
end

एक स्ट्रिंग के लिए एक टेम्पलेट का कच्चा प्रतिपादन।

यह रेंडर करने के समान है, सिवाय इसके कि वह response_body सेट नहीं करता है और इसे हमेशा एक स्ट्रिंग वापस करने की गारंटी दी जानी चाहिए।

यदि कोई घटक response_body के शब्दार्थ का विस्तार करता है (जैसा कि ActionController इसे कुछ भी करने के लिए बढ़ाता है जो प्रत्येक विधि का जवाब देता है), इस विधि को अभी भी एक स्ट्रिंग वापस करने के लिए ओवरराइड किया जाना चाहिए।

# File actionpack/lib/abstract_controller/rendering.rb, line 54
def rendered_format
  Mime[:text]
end

प्रदान की गई सामग्री का प्रकार-प्रकार लौटाता है।

# File actionpack/lib/abstract_controller/rendering.rb, line 64
def view_assigns
  protected_vars = _protected_ivars
  variables      = instance_variables

  variables.reject! { |s| protected_vars.include? s }
  variables.each_with_object({}) { |name, hash|
    hash[name.slice(1, name.length)] = instance_variable_get(name)
  }
end

इस पद्धति को असाइन के साथ एक हैश लौटना चाहिए। आप प्रति नियंत्रक इस कॉन्फ़िगरेशन को ओवरराइट कर सकते हैं।

निजी उदाहरण तरीके

_normalize_args (कार्रवाई = शून्य, विकल्प = {}) स्रोत दिखाएं
# File actionpack/lib/abstract_controller/rendering.rb, line 78
def _normalize_args(action = nil, options = {}) # :doc:
  if action.respond_to?(:permitted?)
    if action.permitted?
      action
    else
      raise ArgumentError, "render parameters are not permitted"
    end
  elsif action.is_a?(Hash)
    action
  else
    options
  end
end

render "foo" करने के render "foo" को render :action => "foo" और render "foo/bar" को render :file => "foo/bar" करने के लिए render :file => "foo/bar"

_normalize_options (विकल्प) स्रोत दिखाएं
# File actionpack/lib/abstract_controller/rendering.rb, line 93
def _normalize_options(options) # :doc:
  options
end

विकल्पों को सामान्य करें।

_process_options (विकल्प) स्रोत दिखाएं
# File actionpack/lib/abstract_controller/rendering.rb, line 98
def _process_options(options) # :doc:
  options
end

अतिरिक्त विकल्प संसाधित करें।