मैं नीचे के रूप में संसाधनों नेस्ट हैरेल: नेस्टेड संसाधनों के लिए मार्ग सहायकों
resources :categories do
resources :products
end
Rails Guides के अनुसार,
तुम भी वस्तुओं का एक सेट के साथ url_for उपयोग कर सकते हैं, और रेल स्वचालित रूप से होगा निर्धारित करें कि आप कौन सा मार्ग चाहते हैं:
<%= link_to 'Ad details', url_for([@magazine, @ad]) %>
इस मामले में, रेल देखेंगे कि @ मैगज़ीन एक पत्रिका है और @ad एक है एन विज्ञापन और इसलिए magazine_ad_path सहायक का उपयोग करेंगे। LINK_TO तरह सहायकों में, आप पूर्ण url_for कॉल के स्थान पर सिर्फ वस्तु निर्दिष्ट कर सकते हैं:
:<%= link_to 'Edit Ad', [:edit, @magazine, @ad] %>
<%= link_to 'Ad details', [@magazine, @ad] %>
अन्य कार्यों के लिए, आप बस सरणी के पहले तत्व के रूप में कार्रवाई का नाम डालने की आवश्यकता जाहिर है यह एक छोटे भी ver है
<% @products.each do |product| %> <tr> <td><%= product.name %></td> <td><%= link_to 'Show', category_product_path(product, category_id: product.category_id) %></td> <td><%= link_to 'Edit', edit_category_product_path(product, category_id: product.category_id) %></td> <td><%= link_to 'Destroy', category_product_path(product, category_id: product.category_id), method: :delete, data: { confirm: 'Are you sure?' } %></td> </tr> <% end %>
:
मेरे मामले में, मैं निम्नलिखित कोड है जो पूरी तरह से कार्य किया गया है बोस और मैं रेल गाइड से ऊपर वर्णित चाल का उपयोग करके इसे छोटा करना चाहता था।
लेकिन अगर मैं बदल के रूप में निम्नानुसार दिखाएँ और संपादित लिंक:
<% @products.each do |product| %>
<tr>
<td><%= product.name %></td>
<td><%= link_to 'Show', [product, product.category_id] %></td>
<td><%= link_to 'Edit', [:edit, product, product.category_id] %></td>
<td><%= link_to 'Destroy', category_product_path(product, category_id: product.category_id), method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
उनमें से न तो
किसी भी अधिक काम करता है, और पृष्ठों एक ही बात की शिकायत है:
NoMethodError in Products#index
Showing /root/Projects/foo/app/views/products/index.html.erb where line #16 raised:
undefined method `persisted?' for 3:Fixnum
क्या क्या मुझे याद आया?
क्या यह काम करता है यदि आप '[product, product.category]' ('दिखाएँ' url के लिए) करते हैं? –