2012-01-09 12 views
26

इस post में, स्लाइस फ़ंक्शन का उपयोग पैराम के केवल आवश्यक तत्व प्राप्त करने के लिए किया जाता है। पैराम के तत्व को छोड़ने के लिए मुझे किस फ़ंक्शन का उपयोग करना चाहिए (जैसे user_id)?रूबी में स्लाइस फ़ंक्शन का कोई विपरीत कार्य है?

Article.new(params[:article].slice(:title, :body)) 

धन्यवाद।

उत्तर

48

उपयोग except का प्रयास करें:

a = {"foo" => 0, "bar" => 42, "baz" => 1024 } 
a.except("foo") 
# returns => {"bar" => 42, "baz" => 1024} 
+1

+1; मुझे इससे हराएं। –

+5

यह ध्यान देने योग्य है कि 'छोड़कर' एक विधि है जिसे रेल द्वारा जोड़ा जाता है और आमतौर पर रूबी के साथ काम करते समय सामान्य रूप से उपलब्ध नहीं होता है –

1

इस

params = { :title => "title", :other => "other", :body => "body" } 

params.select {|k,v| [:title, :body].include? k } #=> {:title => "title", :body => "body"} 
+0

कि बहुत काम की तरह लगता है। –

+2

कम से कम यह रूबी है। निष्पक्ष, टुकड़ा और छोड़कर रेल दोनों विधियां हैं। –

संबंधित मुद्दे