我想制作一个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>

还考虑以下情况,其中foobar是静态参数,定位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')

Ruby-on-rails相关问答推荐

Rails文档的悲观锁定示例中的争用条件

尽管安装并需要 pry-rails gem,但 Rails 容器内出现未定义方法‘pry’错误

如何在哪里查询 Rails 模型中定义的方法

rspec中日期时间结束时的分数是多少?

只允许用户在 Rails 中输入字母和数字

错误原始错误:未安装 ImageMagick/GraphicsMagick

2个空格或1个制表符,Rails社区的缩进标准是什么?

循环大量记录时 Ruby on Rails 内存泄漏; find_each 没有帮助

从 Rails 生成 PDF

如何在rails中发回js.haml

是否有与 PHP 的 isset() 等效的 Rails?

如何找出现有 Rails 应用程序基于哪个 Rails 版本?

如何让空白复选框作为假传递给参数

Rails:使用 gem 卸载特定版本的库

按周/月/等和 ActiveRecord 分组?

Rails 3 SSL 路由从 https 重定向到 http

ruby/ruby on rails 内存泄漏检测

如何为 rspec 设置 ENV 变量?

在 Rails 中,在特定时区创建特定时间(不是现在)的最佳方式是什么?

让 bundler 为不同的平台使用不同的 gem