दिलचस्प पोस्ट
बड़े चित्रों का उपयोग करते समय ओओएम को टालने में मदद करने के लिए जेएनआई बिटमैप संचालन जावास्क्रिप्ट टर्नरी ऑपरेटर के साथ ऑपरेटर का अग्रभाग फ़ेविकॉन – सर्वश्रेष्ठ अभ्यास जावास्क्रिप्ट स्ट्रिंग्स और नंबरों के बीच प्लस और माइनस ऑपरेटर्स को अलग तरह से क्यों संभालता है? गैर-पुनरावर्ती अप्राक्रोच के साथ ग्राफ़ की गहराई से पहली खोज कैसे लागू करें कैसे "और" ऑपरेटर एक PHP फ़ंक्शन में काम करता है? सबसे लंबे समय तक बढ़ते हुए बदलाव जावा में डीकोड बेस64 डेटा आइकन पर Google क्रोम एक्सटेंशन नंबर स्ट्रिंग से सभी गैर-अल्फ़ा संख्यात्मक वर्ण कैसे निकालें? अस्तित्व का उपयोग करते हुए उपचर 1 या मौजूद है * जावा में regex को समझना: विभाजित ("\ t") बनाम विभाजन ("\\ t") – वे दोनों काम करते हैं, और उन्हें कब उपयोग किया जाना चाहिए स्पार्कआर की स्थापना पांडा डेटाफ़्रेम के दो कॉलम में फ़ंक्शन कैसे लागू करें I getch पदावनत है

रेल 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 

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

Solutions Collecting From Web of "रेल 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 देखें