2011-03-04 20 views
8

क्षमा करें अगर यह कहीं और पूछा गया है, लेकिन मैं इसे समझ नहीं सकता। मेरे पास अनुभाग, विषय और उत्तरों के साथ एक मंच है। मैं शो विषय दृश्य से उत्तरों को संपादित और हटाने की कोशिश कर रहा हूं। यह संरचना है:रेल 3 लिंक_to मार्ग (संपादित करें) नेस्टेड संसाधन

resources :sections do 
    resources :topics do 
    resources :replies 
    end 
end 

तो मैं यह देखने के लिए एक रेक मार्ग करता हूं कि मैं अपने संपादन उत्तर को कहां से जोड़ रहा हूं। मैं देखता हूं कि इसकी edit_section_topic_reply और मेरे link_to में मैं _path जोड़ता हूं। अब यही वह है जिसे मैं समझ नहीं सकता। मैं इसे किस पैरामीटर पास कर रहा हूं? यह नहीं होना चाहिए:

<%= link_to 'Edit', edit_section_topic_reply_path(@reply, @topic, @section) %> 

मैं एक Topics#show में ActionController::RoutingError जब मैं यह कर।

No route matches {:topic_id=>#<Topic id: 2, section_id: 2, user_id: nil, subject: "subject", body: "body", created_at: "2011-03-04 08:37:37", updated_at: "2011-03-04 21:37:16">, :controller=>"replies", :action=>"edit", :section_id=>nil, :id=>#<Section id: 2, name: "Section", description: "Section Description", created_at: "2011-03-04 07:50:56", updated_at: "2011-03-04 07:50:56">} 

ऐसा लगता है जैसे कि यह आईडी गुजर नहीं है, लेकिन घोंसला से पहले, अपने नए विषय ठीक

new_section_topic_reply_path(@topic, @section) 

उत्तर

14

काम करता है मैं वास्तव में link_to सहायक के इस पहलू नापसंद करते हैं। अपने कोड अधिक पठनीय और कम त्रुटि की संभावना के मन में, मैं सुझाव है कि आप के बारे में जो आईडी आप में से गुजर रहे हैं स्पष्ट होना।

<%= link_to 'Edit', edit_section_topic_reply_path(:id => @reply.id, 
                :topic_id => @topic.id, 
                :section_id => @section.id) %> 

मैं वजह से भी कई सूक्ष्म और उचित रूप में पागल कीड़े आई है link_to में आदेश से बाहर होने के पैरामीटर के लिए।

+0

आह तो यह इस तरह से करने में, मैंने महसूस किया के लिए एक और रास्ता जबाब आईडी यह बुला नहीं किया गया था विशिष्ट है आईडी। वास्तव में बेवकूफ गलती, मैं एक लूप में था, तो निश्चित रूप से @reply ने कुछ भी नहीं कहा कि यह वास्तव में कौन सी आईडी थी। <% = link_to 'संपादित करें', edit_section_topic_reply_path (उत्तर, @topic, @section)%> इसे दूसरी तरफ हल किया। इस तरह उत्तर दें। सहायता के लिए धन्यवाद! – a3uge

+0

इसके अलावा, मैं इसे पीछे की तरफ था। यह है (@section, @topic, पथ)। – a3uge

+0

मुझे लगता है कि आपका मतलब था (@section, @topic, @reply)। – GMA

0

मुझे लगता है कि सही क्रम में होना चाहिए:

<%= link_to 'Edit', edit_section_topic_reply_path(@section, @topic, @reply) %> 
3

संपादित करें लिंक

<%= link_to [:edit,@section,@topic,@reply] %> 
संबंधित मुद्दे