मैं अपने नियंत्रक में एक विधि को कॉल करने के लिए link_to
का उपयोग करना चाहता हूं। हालांकि, कुछ अजीब कारणों से मार्ग show
विधि की तलाश में है।रेल: लिंक_to नियंत्रक में कस्टम विधि कॉल करता है
मेरी नजर में:
<% @beverages.each do |beverage| %>
..
<%= link_to 'Archive', beverages_archive_path(:id => beverage.id) %>
..
<% end %>
मेरी config में/routes.rb
match 'beverages/archive' => 'beverages#archive'
मेरी beverages_controller.rb में
def archive
beverage = Beverage.find(params[:id])
respond_to do |format|
# format.html # show.html.erb
format.json { render json: beverage }
end
# beverage.update_attribute('archive', true)
end
जब मैं में संग्रह लिंक पर क्लिक करें देखें, यूआरएल बदलता है: http://localhost:3000/beverages/archive?id=11
, हालांकि मुझे निम्न त्रुटि मिलती है।
त्रुटि मैं: ActiveRecord :: RecordNotFound (पेय के साथ आईडी = संग्रह नहीं मिल सका): एप्लिकेशन/नियंत्रक/beverages_controller.rb: 46: `शो '
किसी भी में क्या मैं गलत कर रहा हूँ पर विचार? आपका सहयोग सराहनीय है!
पी एस। मैंने Rails 3 link_to delete destory method calls show method? पर भी देखा लेकिन कुछ भी काम नहीं कर रहा था।
आप अपने 'routes.rb' दिखाने सकते हैं? शायद आपके पास मैच लाइन के ऊपर 'संसाधन: पेय पदार्थ' जैसी कुछ है? – dimuch
http: // stackoverflow की संभावित डुप्लिकेट।कॉम/प्रश्न/3738573/लिंक-टू-एक्शन-बिल्ड-टू-इंडेक्स-से-बनाने-बनाने के बजाय – weltschmerz