Rails 3 has_one routing -
मेरे दो वर्ग हैं:
वर्ग उपयोगकर्ता & lt; ActiveRecord :: बेस: है_ऑन: फ़ू एंड क्लास फू & lt; मैंने निम्न रूटिंग बनाई है:
संसाधन: ActiveRecord :: बेस: is_to: उपयोगकर्ता अंत
उपयोगकर्ताओं को संसाधन हैं: foo end
निम्न मार्गों में कौन सी परिणाम हैं:
प्राप्त करें / यूज़र: / निर्माता :() :(): {नियंत्रक = 'Gtc: GET / यूज़र / यूजर / यूज़र :( प्रारूप) {: नियंत्रक = & gt; "एफओओएस",: एक्शन = & gt; "नया"} GET / यूजर / यूज़र / ईफू / ईआईडी (। {: नियंत्रक = & gt; नियंत्रक = & gt; "एफओयूएस" ,: एक्शन = & gt; "शो"} पीयूटी / यूज़र / यूज़र / ईफू / ईआईडी (।: फॉर्मैट) {: नियंत्रक = & gt; "एफओओएस", एक्शन = & gt; "Update"} user_foo DELETE /users/user_id/foo/:id(.:format) {: नियंत्रक = & gt; "foos",: action = & gt; "नष्ट"} edit_user_foo / users /: user_id / foo / : आईडी / संपादित करें (।: प्रारूप) {: नियंत्रक = & gt; "foos",: action = & gt; "संपादित करें"}
प्रश्न:
- ऐसा लगता है कि इंडेक्स और शो की क्रिया बेमानी है। उनमें से एक को हटाया जाना चाहिए? यदि हां, तो कौनसा?
- : शो में आईडी पैरामीटर अनावश्यक लगता है, क्योंकि user_id फ़ॉउज़ तालिका में एक विदेशी कुंजी है और प्रति उपयोगकर्ता केवल एक फ़ू है क्या मैं गलती कर रहा हूं?
- यदि कोई फू नहीं है तो मुझे नई कार्रवाई के लिए मार्ग का एक शानदार तरीका होना है। एक विकल्प @ user.foo.nil का परीक्षण करना होगा? FooController के शो या इंडेक्स एक्शन में, फिर नई एक्शन पर रीडायरेक्ट करें। क्या कोई बेहतर तरीका है?
आपके समय के लिए धन्यवाद।
यदि आपके मॉडल में एक है_ऑन एसोसिएशन है, तो संसाधन: foo
का उपयोग करके मार्ग को सेट करने का प्रयास करें (एकवचन पद्धति का नाम "संसाधन", "संसाधन" नहीं, ध्यान दें)। यह एक सिंगलटन संसाधन मार्ग स्थापित करेगा (जैसे कि कोई भी इंडेक्स एक्शन नहीं है और केवल सदस्य होने के कारण सदस्य कार्रवाइयों के पास एक आईडी पर नहीं है)। यह भी देखें (2.3 दस्तावेज़ीकरण, लेकिन 3.0 के साथ ही साथ afaik पर लागू होता है)।
Comments
Post a Comment