从路径指定参数

时间:2009-08-24 19:11:19

标签: ruby-on-rails routing

考虑PersonController行为list。用户可以选择列出所有人,或仅列出男性或女性;目前,要做到这一点,他们必须转到/people/m/people/f,对应路线

map.list_people "people/:type",
  :conditions => { :method => :get },
  :requirements => { :type => /a|m|f/ },
  :defaults => { :type => 'a' }

/people/a/people/的工作方式相同,并列出所有人员。)

我想更改路由,以便我可以使用两个路由/males//females/(而不是people/:type),这两个路由都会转到PersonController#list(干 - 除了一个额外的参数到被搜索的内容,其他一切都是相同的),但本来会设置type - 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

map.with_options(:controller => "people", :action => "index") do |people|
  people.males 'males', :type => "m"
  people.females 'females', :type => "f"
end

然后你应该能够males_pathmales_url来获得这条路径,而且我相信你可以猜到你做了什么来获得通往女性的道路。