2011-12-12 6 views
5

Rayları v2.3.2 uygulamasında geliştiriyorum. Bunun link için yolunu nasıl tanımlanacağı kontrolörü, içinde check_teachers yöntemi tetikleyecek üzerine tıklayın, bir link istiyorum app/views/schools/edit.html.erb yılındalink_to yol tanımı

class SchoolController < ApplicationController 
    ... 

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

    end 

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

end 

:

Ben bir denetleyici var ?

app/views/okul/edit.html.erb:

link_to 'Check teachers' WHAT_IS_THE_PATH_HERE 

cevap

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

veya

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

veya böyle config/routes.rb bir adlandırılmış-rol tanımlayabilir:

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

ve URL-yardımcısını arayın Böyle adlandırılan-yoldan üretilen:

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

ve Sen routes.rb dosyada böyle bir şey tanımlayabilirsiniz denetleyici içinde

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

"check_teachers_path" url'sini nasıl edindiniz? URL'lerin uygun olup olmadığını kontrol etmenin bir yolu var mı yoksa bu belirli bir adlandırma biçimidir? Teşekkürler! – ddolce

+0

'rake route'lar, mevcutsa hem URL'yi hem de URL yardımcısını size verecektir. – rubyprince

+0

, "Önek" sütununu mu kastediyorsunuz? Yani bu durumda ben 'check_teachers' doğru görmeliyim? Ve tek yapmam gereken bir '_ yol' ekleyebilmek mi? – ddolce

2

öğretmen bulmak için bu kimliği kullanabilirsiniz.

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

Daha sonra kurmak istiyorum senin link_to şöyle:

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

Sen modeli devletler denetleyici eylemleri arasında paylaşılmaz olarak, denetleyici bir kod bu biraz eklemek gerekir:

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

Bu test edilmemiştir, ancak çalışmalıdır. Başka sorunlarınız varsa yorum yapın.