2011-06-10 5 views
6

में पैरामीटर पास करने वाले रेल पर रूबी यह शायद एक बहुत ही सरल फिक्स है लेकिन मैं अभी तक कोई जवाब नहीं ढूंढ पा रहा हूं।यूआरएल

मेरे आवेदन में ऑर्डर और कार्य हैं। ऑर्डर में कई कार्य हैं।

<%= link_to "New Task", new_task_path(:order_id=> @order.id) %> 

यूआरएल पता चलता है::

/tasks/new?order_id=1 

मैं सिर्फ यह कैसे निकालने और इसका इस्तेमाल करने के पता नहीं है एक उपयोगकर्ता शो आदेश को ध्यान में रखते नया कार्य क्लिक करता है, यह order.id गुजरता मेरे रूप में? मैंने कोशिश की है:

<%= f.text_field :order_id, :value => @order_id %> 

लेकिन यह काम नहीं कर रहा है।

+0

'मूल्य => @ order_id' में टाइपो। यह ': value => @ order.id' नहीं होना चाहिए? – spektom

उत्तर

2

आप can do:

<%= f.text_field :order_id, :value => params[:order_id] %> 

वैकल्पिक रूप से, मूल्य (साथ params) in the controller को पकड़ने और वहाँ @order_id लिए असाइन करें।

+0

शानदार, एक इलाज किया !! जेएक्स –

+1

बेहतर इसे एक छुपा क्षेत्र बनाओ हालांकि: http://apidock.com/rails/ActionView/Helpers/FormHelper/hidden_field – Jakub

+0

पहले से ही किया गया है :) –

-1

आप यह गलत कर रहे हैं, जो रेल में बड़ा सौदा है जहां सम्मेलन-ओवर-कॉन्फ़िगरेशन इतना महत्वपूर्ण आदर्श है।

एक आदेश कई कार्यों है, तो अपने मार्ग इस तरह दिखना चाहिए:

/orders/:order_id/tasks/new 

और अपने मार्गों thusly कॉन्फ़िगर किया जाना चाहिए:

resources :orders do 
    resources :tasks 
end 

आप [लगभग] मिल कभी नहीं करना चाहिए क्वेरी स्ट्रिंग में रिकॉर्ड आईडी के आसपास गुजर रहा है। असल में, आपको रेल में बिल्कुल क्वेरी स्ट्रिंग का उपयोग करके खुद को कभी नहीं ढूंढना चाहिए।

+7

नेस्टेड संसाधन हमेशा उपयुक्त नहीं होते हैं। कुछ लोग सोचते हैं कि वे * कभी * उचित नहीं हैं, लेकिन मैं यहां उस तर्क को शुरू नहीं करूंगा। यहां तक ​​कि यदि आपको लगता है कि वे * कभी-कभी * उपयुक्त हैं, तो यह सवाल से 100% स्पष्ट नहीं है कि कार्यों के आदेश सहयोग संबंधों के बजाय स्वामित्व है। मैं मानता हूं कि यह एक अच्छा * विकल्प * है, लेकिन मैं आपकी अन्य टिप्पणी उद्धृत करने के लिए अन्य विकल्पों को कॉल करने के लिए "बिल्कुल ** गलत तरीका ** रेल में ऐसा करने के लिए कहता हूं"। विचार करें, उदाहरण के लिए, यदि कोई "ऑर्डर" किसी कार्य पर एक वैकल्पिक फ़ील्ड है। –