2011-12-12 17 views
5

मैं एक रेल v2.3.2 एप्लिकेशन developoing कर रहा हूँ।LINK_TO पथ परिभाषा

class SchoolController < ApplicationController 
    ... 

    def edit 
    @school=School.find_by_id params[:id] 

    end 

    def check_teachers 
    @teachers = @school.teachers 
    ... 
    end 

end 
app/views/schools/edit.html.erb में

मैं एक link करना चाहते हैं, उस पर क्लिक करें कि कैसे इस link के लिए पथ परिभाषित करने के लिए नियंत्रक, में check_teachers विधि ट्रिगर किया जाएगा:

मैं एक नियंत्रक है ?

एप्लिकेशन/विचारों/स्कूलों/edit.html.erb:

link_to 'Check teachers' WHAT_IS_THE_PATH_HERE 

उत्तर

22
link_to 'Check teachers', :action => :check_teachers, :id => @school.id 

या

link_to 'Check teachers', '/school/check_teachers/#{@school.id}' 

या आप इस तरह config/routes.rb में एक नामित मार्ग को परिभाषित कर सकते हैं:

map.check_teachers, '/school/check_teachers/:id' :controller => :school, :action => :check_teachers 

और यूआरएल सहायक फोन इस तरह का नाम दिया-मार्ग द्वारा उत्पन्न:

link_to 'Check teachers', check_teachers_path(:id => @school.id) 

और आप इस आईडी का उपयोग कर सकते हैं आप अपने routes.rb फ़ाइल में कुछ इस तरह परिभाषित कर सकते हैं नियंत्रक में शिक्षकों को खोजने के लिए

def check_teachers 
    @school = School.find params[:id] 
    @teachers = @school.teachers 
    ... 
end 
+0

howd आप 'check_teachers_path' यूआरएल मिल सकता है? क्या यूआरएल उपलब्ध हैं या यह एक विशिष्ट नामकरण प्रारूप है यह जांचने का कोई तरीका है? धन्यवाद! – ddolce

+0

'रेक routes' तुम दोनों यूआरएल और यूआरएल सहायक दे देंगे अगर यह उपलब्ध है। – rubyprince

+0

आप 'Prefix' स्तंभ मतलब है? तो इस मामले में मुझे 'check_teachers' सही दिखना चाहिए? और मुझे बस इतना करना है कि इसे '_path' जोड़ना है? – ddolce

2

map.connect "schools/:id/check_teachers", :controller => "schools", :action => "check_teachers" 

फिर आप सेट करेंगे अपने link_to इस प्रकार है:

link_to "Check teachers", check_teachers_path(:id => @school.id) 

आप नियंत्रक में कोड के इस बिट जोड़ने के लिए, के रूप में मॉडल राज्यों नियंत्रक कार्यों के बीच साझा नहीं कर रहे हैं की आवश्यकता होगी:

def check_teachers 
    @school = School.find_by_id(params[:id]) 
    # Then you can access the teachers with @school.teachers 
    end 

यह अनचाहे है लेकिन काम करना चाहिए। अगर आपके पास कोई और समस्या है तो बस टिप्पणी करें।

संबंधित मुद्दे