Ruby on Rails 5.2 - ActionController::Helpers

मॉड्यूल एक्शनकंट्रोलर :: हेल्पर्स




ruby

मॉड्यूल एक्शनकंट्रोलर :: हेल्पर्स

शामिल मॉड्यूल:
AbstractController :: सहायकों

रेल ढांचा कुछ नाम रखने के लिए संपत्ति, दिनांक, प्रपत्र, संख्या और मॉडल ऑब्जेक्ट के साथ काम करने के लिए बड़ी संख्या में सहायक प्रदान करता है। ये हेल्पर्स डिफ़ॉल्ट रूप से सभी टेम्प्लेट के लिए उपलब्ध हैं।

प्रदान किए गए मानक टेम्पलेट हेल्पर्स का उपयोग करने के अलावा, जटिल तर्क या पुन: प्रयोज्य कार्यक्षमता को निकालने के लिए कस्टम हेल्पर्स बनाने के लिए दृढ़ता से प्रोत्साहित किया जाता है। डिफ़ॉल्ट रूप से, प्रत्येक नियंत्रक में सभी सहायक शामिल होंगे। ये #helpers केवल #helpers माध्यम से कंट्रोलर पर पहुंच सकते हैं

रेल के पिछले संस्करणों में नियंत्रक में एक सहायक शामिल होगा जो नियंत्रक के नाम से मेल खाता है, जैसे, MyController में स्वचालित रूप से MyHelper शामिल MyHelper । पुराने व्यवहार को वापस करने के लिए config.action_controller.include_all_helpers को false सेट करें।

ActionController::Base या किसी भी कंट्रोलर से helper क्लास मेथड का उपयोग करके अतिरिक्त ActionController::Base को निर्दिष्ट किया जा सकता है।

यदि समय ऑब्जेक्ट रिक्त है तो कस्टम संदेश प्रदर्शित करने के लिए टाइम क्लास से to_s पद्धति को सहायक विधि में लपेटा जा सकता है:

module FormattedTimeHelper
  def format_time(time, format=:long, blank_message=" ")
    time.blank? ? blank_message : time.to_s(format)
  end
end

FormattedTimeHelper को अब एक कंट्रोलर में शामिल किया जा सकता है, helper क्लास मेथड का उपयोग करके:

class EventsController < ActionController::Base
  helper FormattedTimeHelper
  def index
    @events = Event.all
  end
end

फिर, EventController द्वारा प्रस्तुत किसी भी दृश्य में, format_time विधि को बुलाया जा सकता है:

<% @events.each do |event| -%>
  <p>
    <%= format_time(event.time, :short, "N/A") %> | <%= event.name %>
  </p>
<% end -%>

अंत में, यह मानते हुए कि हमारे पास दो घटनाएँ हैं, एक जिसका समय है और जो नहीं है, आउटपुट इस तरह दिख सकता है:

23 Aug 11:30 | Carolina Railhawks Soccer Match
N/A | Carolina Railhawks Training Workshop

गुण

helpers_path [RW]

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

# File actionpack/lib/action_controller/metal/helpers.rb, line 119
def helpers
  @_helper_proxy ||= view_context
end

दृश्य के बाहर से सहायक विधियों तक पहुँचने के लिए एक प्रॉक्सी प्रदान करता है।