我想制作一个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
?
我想制作一个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
?
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
是静态参数,定位between个动态参数:
# 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参数出现在传递它们的order中,但不一定出现在同一个sequence中.
编辑:
以下语法相当于第一个代码段.主要区别在于,它接受参数作为命名参数,而不是按照它们传递的顺序:
get_class_swimming_students_path(:start_date => '2013-01-01', :end_date => '2013-02-02')