Ruby on Rails 5.2 - ActionView::FileSystemResolver

क्लास एक्शन व्यू :: FileSystemResolver




ruby

क्लास एक्शन व्यू :: FileSystemResolver

जनक:
ActionView :: PathResolver

एक रिज़ॉल्वर जो फ़ाइल सिस्टम से फ़ाइलों को लोड करता है। यह आपके स्वयं के संकल्प पैटर्न को सेट करने की अनुमति देता है। ऐसा पैटर्न कुछ चर द्वारा समर्थित एक स्ट्रिंग स्ट्रिंग हो सकता है।

उदाहरण

डिफ़ॉल्ट पैटर्न, भार को उसी तरह से देखता है जैसे रेल के पिछले संस्करण, जैसे। जब आप users/new तलाश कर रहे हैं तो यह क्वेरी ग्लोब का उत्पादन करेगा: users/new{.{en},}{.{html,js},}{.{erb,haml},}

FileSystemResolver.new("/path/to/views", ":prefix/:action{.:locale,}{.:formats,}{+:variants,}{.:handlers,}")

यह आपको अलग-अलग उपनिर्देशिकाओं में विभिन्न प्रारूपों के साथ फाइलें रखने की अनुमति देता है, जैसे। users/html/new.erb users/new.html.erb users/html/new.erb या users/new.html.erb , users/new.js से users/js/new.erb या users/new.js.erb , आदि से users/new.js.erb

FileSystemResolver.new("/path/to/views", ":prefix/{:formats/,}:action{.:locale,}{.:formats,}{+:variants,}{.:handlers,}")

यदि आप एक पैटर्न निर्दिष्ट नहीं करते हैं तो डिफ़ॉल्ट का उपयोग किया जाएगा।

रेल एप्लिकेशन में ऊपर दिए गए किसी भी कस्टमाइज़ किए गए रिज़ॉल्वर का उपयोग करने के लिए, आपको उदाहरण के लिए एक्शनकंट्रोलर :: Base.view_paths कॉन्फ़िगर करने की आवश्यकता है:

ActionController::Base.view_paths = FileSystemResolver.new(
  Rails.root.join("app/views"),
  ":prefix/:action{.:locale,}{.:formats,}{+:variants,}{.:handlers,}",
)

पैटर्न प्रारूप और चर

पैटर्न में एक वैध ग्लोब स्ट्रिंग होना चाहिए, और यह आपको निम्नलिखित चर का उपयोग करने की अनुमति देता है:

  • :prefix - आमतौर पर नियंत्रक पथ

  • :action - :action नाम

  • :locale - संभव स्थानीय संस्करण

  • :formats - संभव अनुरोध प्रारूप (उदाहरण के लिए html, json, xml…)

  • :variants - संभव अनुरोध वेरिएंट (उदाहरण के लिए फोन, टैबलेट ...)

  • :handlers - संभव हैंडलर (उदाहरण के लिए एरब, एचएमएल, बिल्डर…)

पब्लिक क्लास के तरीके

नया (पथ, पैटर्न = शून्य) स्रोत दिखाएं
# File actionview/lib/action_view/template/resolver.rb, line 346
def initialize(path, pattern = nil)
  raise ArgumentError, "path already is a Resolver class" if path.is_a?(Resolver)
  super(pattern)
  @path = File.expand_path(path)
end
सुपरक्लास विधि कहता है

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

== (रिज़ॉल्वर)
उपनाम के लिए: eql?
eql? (रिज़ॉल्वर) स्रोत दिखाएँ
# File actionview/lib/action_view/template/resolver.rb, line 357
def eql?(resolver)
  self.class.equal?(resolver.class) && to_path == resolver.to_path
end
के रूप में भी उपनाम: ==
to_path ()
इसके लिए उपनाम: to_s
# File actionview/lib/action_view/template/resolver.rb, line 352
def to_s
  @path.to_s
end
के रूप में भी उपनाम: to_path