7

मैं इंडेक्स एक्शन में पैरामीटर पास करना चाहता हूं, लेकिन मुझे केवल शो एक्शन मिल रहा है।रेल इंडेक्स एक्शन/विधि में पैरामीटर कैसे जोड़ें?

routes.rb:

Test1::Application.routes.draw do 
    resources :blog 
end 

blog_controller.rb:

def show 
    # code 
    end 

    def index 
    # code 
    end 
यूआरएल

देखें कि बजाय सूचकांक कार्रवाई करने के लिए कार्रवाई दिखाने के लिए भेजें:

<a href="/blog/myvar"> My link </a> 

क्या मैं में जोड़ना चाहिए मार्ग फ़ाइल या देखने में? मेरे मार्गों में से

आउटपुट:

$ rake routes 

blog GET /blog(.:format)   {:action=>"index", :controller=>"blog"} 

blog GET /blog/:id(.:format)  {:action=>"show", :controller=>"blog"} 
+0

यकीन नहीं करता है, तो मैं समझता हूँ । आप इंडेक्स एक्शन में पैरामीटर पास करना चाहते हैं? – c0deNinja

+0

हाँ इंडेक्स एक्शन के लिए, यदि आपके पास अन्य तरीका है तो कृपया – Yosef

उत्तर

9

कमांड लाइन आप मार्गों दिखाएगा आप rake routes

मार्ग आप चाहते हैं के साथ उपयोग कर सकते हैं blogs_path है और आपको लगता है कि करने के लिए, उदाहरण के लिए पर एक पैरामीटर जोड़ सकते हैं blogs_path(other_item => :value)

वास्तव में आप कैसे एक नियंत्रक, एक और दृश्य, आदि

दृश्य के लिए में इसका इस्तेमाल करने की कोशिश कर रहे हैं कि क्या पर निर्भर करेगा है: <%= link_to 'My Link', blogs_path(:other_item => value) %>

+0

लिखें कृपया मेरा संपादन – Yosef

+0

देखें, कृपया मेरे रूट आउटपुट को संपादित में देखें। मैं blogs_path ('myparam' =>: value) करने का प्रयास करता हूं लेकिन यह कार्रवाई – Yosef

+0

को फिर से अपडेट करने के लिए दिखाता है। –

1

ऐसा लगता है कि आप 2 मार्गों हैं:

/blogs/:other_param 
/blogs/:id 

लेकिन, रेल के रूप में स्मार्ट के रूप में, यह पता नहीं लगा सकता है कि परम को अन्य_परम या आईडी के रूप में माना जाना है या नहीं।

तो आसान समाधान तो जैसे संसाधनों डिफ़ॉल्ट रूप में इस मार्ग को जोड़ने के लिए है:

resources :blogs 
get "/blogs/other_param/:other_param", to: "blogs#index", as: "other_param_blogs" 

इस तरह रेल आश्वस्त रहे कि आप करने के लिए/ब्लॉग/other_param/वर्तमान जा रहे हैं, तो यह वर्तमान व्यवहार करेगा के रूप में: अन्य_परम। नीचे दिए गए कोड

1

उपयोग पैरामीटर पारित करने के लिए:

<a href="/blog?name=test">My link </a> 

या

<%= link_to "My link", blog_path(name: "test") %> 
कोड ऊपर

कुंजी और पैरामीटर के रूप में परीक्षण के रूप में नाम के साथ सूचकांक कार्रवाई पर रीडायरेक्ट करेगा,

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