MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

आरओआर:मोंगोइड और फॉर्म हैश बनाते हैं

जब आप form_for . का उपयोग कर रहे हों :

आपके मामले में, Video नमूना। रेल सम्मेलन को समझने के लिए:

<%=  form_for @video do |f| %>
...
<%= f.text_field :description %>
...

जिसके परिणामस्वरूप एक HTML टैग होता है जिसका नाम विशेषता वीडियो[विवरण] . है . इसका अर्थ यह है कि जब फ़ॉर्म सबमिट किया जाता है, तो उपयोगकर्ता द्वारा दर्ज किया गया मान नियंत्रक में params[:video][:description] के रूप में उपलब्ध होगा ।

params वेरिएबल ActiveSupport::HashWithIndifferentAccess का एक उदाहरण है , एक Hash . की तरह एक छोटे से अंतर के साथ, दस्तावेज़ीकरण के अनुसार:

आपके params कुछ इस तरह है:

{"utf8"=>"✓",
 "_method"=>"post",
 "authenticity_token"=>"xxx",
 "video"=>
  {"description"=>"Video desc"}
}

जहां "video" या :video हैश की चाबियों में से एक है। तो, params[:video] params.fetch("video") . के बराबर है {"description"=>"Video desc"} . कौन सा मान है . जैसा कि आप देख सकते हैं मान एक और हैश है। अंत में विवरण का मूल्य प्राप्त करने के लिए आपको params[:video][:description] . करना होगा (रेल मार्ग) या params.fetch("video").fetch("description") , जो मान "Video desc" . है ।

fetch Hash . की रूबी विधि है :"दी गई कुंजी के लिए हैश से एक मान लौटाता है।"

इसे ध्यान में रखते हुए:

Video.new(params[:video]) = Video.new(:description => "Video desc") = Video.new(:description => params[:video][:description])

सम्मेलनों का उपयोग करना आसान है, लेकिन निश्चित रूप से आपके पास params[:description] हो सकता है (सिर्फ मामले में):

<%=  form_for @video do |f| %>
...
<%= text_field_tag :description %>
...

ध्यान दें कि मैं text_field_tag का उपयोग कर रहा हूं f.text_field . के बजाय . इस मामले में html टैग नाम description होगा params . में हैश आपको प्राप्त होगा { "description" => 'Video desc" } ...

Rails API के दस्तावेज़ पर एक नज़र डालें विभिन्न सहायकों आदि को समझने के लिए और अपने सर्वर के लॉग की भी समीक्षा करें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. छवियाँ संग्रहीत करना:MongoDb बनाम फ़ाइल सिस्टम

  2. हरोकू मंगोलिया को प्रमाणित नहीं कर सका

  3. स्प्रिंग HATEOAS प्रतिनिधित्व मॉडल, संपत्ति लिंक सेट नहीं कर सकता क्योंकि कोई सेटर नहीं, कोई मुरझाया नहीं और यह दृढ़ता निर्माता का हिस्सा नहीं है

  4. क्या नेवला प्री ('सेव') में संपत्ति के पिछले मूल्य तक पहुंच प्रदान करता है?

  5. मोंगोडब में स्ट्रिंग की लंबाई का चयन करें