2013-06-06 3 views
31

Я хотел бы, чтобы произвести URL какRails: URL/путь с параметрами

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

от этого маршрута

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

Как передать параметры get_class_swimming_students_path?

+0

Смотрите мой ответ. Это может вам помочь. Спасибо. – Jyothu

ответ

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

В Rails параметры URL сопоставляются маршрутизатору в точном порядке, в котором они передаются. Рассмотрим следующий пример:

# 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> 

Рассмотрим также следующий случай, когда foo и bar являются статические параметры, расположенные между динамические параметры:

# 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> 

В последнем примере, аргументы будут отображаться в качестве параметров URL в заказать, в котором они были переданы, но не обязательно в том же последовательности.

РЕДАКТИРОВАТЬ:

следующий синтаксис эквивалентен первому фрагмент. Основное отличие заключается в том, что он принимает аргументы как именованные параметры, а не в том порядке, они прошли:

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

Для любого пути вы можете пройти Params как

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

И В контроллере вы можете просто доступ к этим прошли Params как обычно

2

Try использовать что

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

в рельсах 4, введите менее с:

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

где значение1 способ и значение2 является строкой

Смежные вопросы