दिलचस्प पोस्ट
कैसे जांचने के लिए कि क्या mod_rewrite सर्वर पर सक्षम है? एंड्रॉइड पर मैं ऑब्जेक्ट को एक गतिविधि से दूसरे में कैसे पारित कर सकता हूं? सी में सर्वश्रेष्ठ समय की विधि? कैसे एक बैश समारोह से एक स्ट्रिंग मान वापस करने के लिए एवीएक्स सीपीयू निर्देशों का प्रयोग करना: "/ आर्क: एवीएक्स" के बिना खराब प्रदर्शन कैसे एसडी कार्ड पर निर्देशिका स्वचालित रूप से बनाने के लिए जावास्क्रिप्ट में स्ट्रिंग से दिनांक ऑब्जेक्ट कैसे बनाएं सीएसएस, जेएस और छवियों को सुंदर यूआरएल के साथ प्रदर्शित नहीं करते कब मुझे एक सुरक्षित। स्ट्रिंग में आवश्यकता होगी? प्रोग्राम को एक लेआउट में बटन जोड़ें क्यों UINavigationBar स्पर्श घटनाओं चोरी? ऐप के लिए पुश नोटिफिकेशन सेटिंग रीसेट करें Python का उपयोग कर फ़ाइल को बदलना jQuery: बाहरी HTML () यूनिकोड, यूटीएफ, एएससीआईआई, एएनएसआई प्रारूप मतभेद

रेल params समझाया?

क्या कोई रेल नियंत्रक में params व्याख्या कर सकता है: जहां से वे आते हैं, और वे क्या संदर्भित कर रहे हैं?

  def create @vote = Vote.new(params[:vote]) item = params[:vote][:item_id] uid = params[:vote][:user_id] @extant = Vote.find(:last, :conditions => ["item_id = ? AND user_id = ?", item, uid]) last_vote_time = @extant.created_at unless @extant.blank? curr_time = Time.now end 

मैं इस कोड लाइन-बाय-लाइन को पढ़ने और समझने की कोशिश कर रहा हूं कि क्या हो रहा है।

वेब के समाधान से एकत्रित समाधान "रेल params समझाया?"

जब वे पृष्ठ का अनुरोध करते हैं तो पैरामीटर उपयोगकर्ता के ब्राउज़र से आते हैं एक HTTP GET अनुरोध के लिए, जो सबसे आम है, पैरामीटर यूआरएल में एन्कोडेड हैं। उदाहरण के लिए, यदि उपयोगकर्ता के ब्राउजर ने अनुरोध किया

http://www.example.com/?foo=1&boo=octopus

तो params[:foo] "1" और params[:boo] "ओक्टोपस" होगा

एचटीटीपी / एचटीएमएल में, पैरामीटर वास्तव में कुंजी-मूल्य जोड़े की श्रृंखला है जहां कुंजी और मान स्ट्रिंग होते हैं, लेकिन रेल पर रूबी के पास एक विशेष सिंटैक्स है जिसमें पैरामश बनाने के लिए हैश के साथ एक हैश होता है। उदाहरण के लिए, यदि उपयोगकर्ता के ब्राउज़र ने अनुरोध किया

http://www.example.com/?vote%5Bitem_id%5D=1&vote%5Buser_id%5D=2

तो params[:vote] एक हैश होगा, params[:vote][:item_id] "1" और params[:vote][:user_id] "2" होगा।

रेल पैरामीटर पर रूबी PHP में $ _REQUEST सरणी के बराबर हैं।

जैसा कि अन्य लोगों ने बताया है, params मूल्य एक अनुरोध अनुरोध के क्वेरी स्ट्रिंग या पोस्ट अनुरोध के फ़ॉर्म डेटा से आ सकता है, लेकिन यहां से तीसरे स्थान पर भी आ सकता है: URL का पथ

जैसा कि आप जानते हैं, रेल अनुरोध करता है कि उनके समान नियंत्रक कार्यों के लिए अनुरोध करने के लिए कुछ मार्गों का उपयोग करता है। इन मार्गों में ऐसे खंड शामिल हो सकते हैं जो यूआरएल से निकाले जाते हैं और params में डालते हैं। उदाहरण के लिए, यदि आपके पास ऐसा मार्ग है:

 match 'products/:id', ... 

फिर http://example.com/products/42 जैसे यूआरएल के लिए अनुरोध params[:id] से 42 सेट कर देगा।

पैरामीटर में पैरामीटर के निम्न तीन समूह होते हैं:

  1. प्रयोक्ता द्वारा प्रदत्त पैरामीटर
    • GET ( http://domain.com/url?param1=value1&param2=value2 परम सेट करेगा: param1] और पैराम [[param2])
    • पोस्ट (उदाहरण के लिए, JSON, XML स्वचालित रूप से पार्स और पैरामीटर में संग्रहीत किया जाएगा)
    • नोट: डिफ़ॉल्ट रूप से, उपयोगकर्ता ने पैरामीटर की आपूर्ति की डुप्लिकेट रेल की है और पैरामीटर में उन्हें संग्रहीत करता है [: उपयोगकर्ता] यदि उपयोगकर्ता कंट्रोलर में हैं, तो wrap_parameters सेटिंग के साथ बदला जा सकता है
  2. रूटिंग पैरामीटर
    • match '/user/:id' routes.rb में params सेट करेगा [: आईडी]
  3. डिफ़ॉल्ट पैरामीटर
    • params[:controller] और params[:action] हमेशा उपलब्ध रहता है और इसमें वर्तमान नियंत्रक और क्रिया शामिल है

असल में, मापदंडों उपयोगकर्ता निर्दिष्ट रेल अनुप्रयोग के लिए डेटा है

जब आप कोई फॉर्म पोस्ट करते हैं, तो आप आमतौर पर इसे GET अनुरोध के विरोध में पोस्ट अनुरोध के साथ करते हैं। आप सामान्य रेल अनुरोधों को GET अनुरोध के रूप में मान सकते हैं, जब आप साइट ब्राउज़ करते हैं, यदि यह मदद करता है

जब आप कोई फॉर्म सबमिट करते हैं, तो नियंत्रण वापस आवेदन पर डाल दिया जाता है। आपके द्वारा दिए गए मानों को आप फ़ॉर्म में कैसे प्राप्त करते हैं? params कैसे है

आपके कोड के बारे में @vote = Vote.new params[:vote] डेटा का उपयोग करके डेटाबेस को नया वोट बनाता है [: वोट] आपके फॉर्म को सबमिट किए गए उपयोगकर्ता को नाम दिया गया था: वोट, इसके बारे में सभी डेटा इस में है: हैश का वोट फ़ील्ड।

अगले दो पंक्तियों का उपयोग आइटम प्राप्त करने के लिए किया जाता है और यूआईडी उपयोगकर्ता ने फॉर्म में जमा कर दिया है।

 @extant = Vote.find(:last, :conditions => ["item_id = ? AND user_id = ?", item, uid]) 

नवीनतम, या आखिरी बार डालें, डेटाबेस से मदों के साथ वोट करें item_id = item और user_id = uid

अगली पंक्तियां अंतिम वोट समय और वर्तमान समय लेती हैं।

रेल की ओर, params एक ऐसा तरीका है जो ActionController::Parameters ऑब्जेक्ट देता है। https://stackoverflow.com/a/44070358/5462485 देखें