में एसटीआई कक्षा के बेस क्लास के लिए मार्ग प्राप्त करें कहें कि मेरे पास 3 मॉडल, व्यक्ति, स्थान और चीज के साथ रेल ऐप है। कहें कि चीज एकल टेबल विरासत का उपयोग करती है, इसलिए फैंसीटिंग और डरावनी उप-वर्ग हैं। फिर map.resources :people, :places, :things
के साथ परिभाषित मार्ग हैं। तो फैंसी थिंग्स और डरावनी चीजों के लिए कोई नियंत्रक नहीं हैं, चीजें कंट्रोलर या तो हैंडल करता है।रेल
अब कहें कि मुझे कोड होना चाहिए जो किसी भी सूची की सूची दिखाता है, उनके लिए लिंक हैं। अगर मैं मेरे विचार में इस कोड है:
<% @items.each do |item| %>
<%= link_to item.name, item %>
<% end %>
हैं आइटम एक व्यक्ति या एक जगह है, यह ठीक काम करता है, polymorphic_path
सही मार्ग पैदा करने का ख्याल रखता है। लेकिन अगर आइटम एक फैंसीटिंग या डरावनी चीज है, तो यह उड़ाता है, क्योंकि यह fancy_thing_path
का उपयोग करने का प्रयास करेगा, जिसके लिए कोई रास्ता नहीं है। मैं किसी भी तरह इसे thing_path
का उपयोग करना चाहता हूं। आदर्श रूप से थिंग और/या इसके उप-वर्गों पर एक विधि होगी जो किसी भी तरह से इंगित करता है कि उप-वर्गों को मार्ग उत्पन्न करने के लिए बेस क्लास का उपयोग करना चाहिए। क्या इसका कोई शानदार समाधान है?
यह रेल विकास पर एक [खुला टिकट] (http://dev.rubyonrails.org/ticket/10454) है। इसके साथ निपटने के सुझावों के लिए टिकट देखें। – MarkusQ