2013-06-06 11 views
31

chciałbym produkować URL jakoszyn: URL/ścieżkę z parametrami

/swimming/students/get_times/2013-01-01/2013-02-02 

z tej trasy

get_class_swimming_students GET /swimming/students/get_times/:start_date/:end_date(.:format) swimming/students#get_times 

Jak przekazać parametry do get_class_swimming_students_path?

+0

zobaczyć moją odpowiedź. To może ci pomóc. Dziękuję Ci. – Jyothu

Odpowiedz

36
get_class_swimming_students_path('2013-01-01', '2013-02-02') 

W Railsach parametry URL są mapowane do routera w dokładnej kolejności, w jakiej są przekazywane. Rozważmy następujący:

# rake routes 
my_route GET /my_route/:first_param/:second_param/:third_param(.:format) 

# my_view.html.erb 
<%= link_to('My Route', my_route_path('first_param', 'second_param', 'third_param') %> 
#=> <a href="/my_route/first_param/second_param/third_param">My Route</a> 

rozważyć również przypadek, w którym foo i bar są parametry statyczne ustawione między parametry dynamiczne:

# rake routes 
my_route GET /my_route/:first_param/foo/:second_param/bar/:third_param(.:format) 

# my_view.html.erb 
<%= link_to('My Route', my_route_path('first_param', 'second_param', 'third_param') %> 
#=> <a href="/my_route/first_param/foo/second_param/bar/third_param">My Route</a> 

W ostatnim przykładzie, argumenty będą wyświetlane jako parametry URL w zamówienie w którym zostały przekazane, ale niekoniecznie w tej samej sekwencji.

Edycja:

następującą składnię odpowiada pierwszym fragmencie. Podstawową różnicą jest to, że przyjmuje argumentów nazwanych parametrów, a nie w kolejności są one przekazywane:

get_class_swimming_students_path(:start_date => '2013-01-01', :end_date => '2013-02-02') 
18

Dla każdej ścieżce można przekazać params jak

get_class_swimming_students_path(:params1 => value1, :params2 => value2) 

I W sterowniku można po prostu dostęp do tych przekazywanych params jak zwykle

2

spróbuj użyć tego

get_class_swimming_students_path(:start_date => "2013-01-01", :end_date => "2013-02-02") 
0

w szynach 4, typu mniej z:

get_class_swimming_students_path(params1: value1, params2: "value2") 

gdzie wartosc1 to metoda i value2 jest ciągiem