Ответ 1
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 в том порядке, в котором они были переданы, но не обязательно в одной и той же последовательности.
EDIT:
Следующий синтаксис эквивалентен первому фрагменту. Основное отличие состоит в том, что он принимает аргументы как именованные параметры, а не в том порядке, в котором они переданы:
get_class_swimming_students_path(:start_date => '2013-01-01', :end_date => '2013-02-02')