访问从Controller代码传递到URL的参数

时间:2013-02-27 22:30:39

标签: ruby-on-rails ruby-on-rails-3.2

我的Rake Routes看起来像这样:

report GET /management/:id/report(.:format) report#show

在我的控制器代码中如何访问:id参数?它还在.params[:id]吗?

我觉得我很困惑,因为这个时间id不是URL中的最后一个,它位于URL的中间。

2 个答案:

答案 0 :(得分:1)

是的,你可以像你说的那样访问你在路线中定义的参数:

# The route 
# /management/:id/report(.:format)
# will generate the following params:
params[:id]
params[:format] # optional

另一个例子:

match ':controller(/:action(/:id))'
# will produce the following params:
params[:controller]
params[:action] # (optional)
params[:id] # (optional)

match '/search/:search'
# will produce, in the SearchController (and views):
params[:search]

答案 1 :(得分:1)

params[:id]。它只是一个命名参数,不必是url的最后一部分。如果它不起作用,请提供您的路线。