मैं ब्योरा सहायक उम्मीद कर रही है के साथ संघर्ष कर रहा है, url_helpers (बहुवचन) का उल्लेख करने की जरूरत है डिफ़ॉल्ट नियंत्रक और ढेर से (default_url_options
, आदि), और मेजबान हार्डकोड नहीं करना चाहता था।
हमारे URL सहायकों ज़ाहिर है, हमारे गंधा मॉड्यूल द्वारा प्रदान की जाती हैं:
include Rails.application.routes.url_helpers
लेकिन शामिल इस रूप में है, और (1) सहायक default_url_options
देखने के लिए जा रहा है, और (2) नहीं होगा अनुरोध मेजबान और न ही अनुरोध के बारे में जानें।
होस्ट हिस्सा नियंत्रक इंस्टेंस के url_options
से आता है। इसलिए, मैं नियंत्रक संदर्भ मेरी पूर्व मॉड्यूल में अब एक वर्ग पारित,:
class ApplicationController
def do_nifty_things
HasAccessToRoutes.new(self).render
end
end
class HasAccessToRoutes
include Rails.application.routes.url_helpers
delegate :default_url_options, :url_options, to: :@context
def initialize(context)
@context = context
end
def render
nifty_things_url
end
end
हर मामले में फिट नहीं सकता है, लेकिन यह मेरे लिए उपयोगी हो गया है जब कस्टम रेंडरर का एक तरह लागू करने।
किसी भी तरह से:
- आप मूल डिफ़ॉल्ट यूआरएल विकल्पों तक पहुंच, या अनुरोध के मेजबान चाहते हैं तो आपको
- में नियंत्रक/अनुरोध संदर्भ पारित करने के लिए अगर आप सिर्फ पथ की जरूरत की जरूरत है , कोई मेजबान नहीं है, और यूआरएल विकल्पों की परवाह नहीं है, आप बस कुछ डमी तरीके बना सकते हैं।
स्रोत
2016-09-16 01:35:04
संभावित डुप्लिकेट [क्या रेलवे रूटिंग हेल्पर्स (यानी mymodel \ _path (मॉडल)) मॉडल में उपयोग किया जा सकता है?] (Http://stackoverflow.com/questions/341143/can-rails-routing-helpers-ie -mymodel-pathmodel-be-used-in-model) –