代码之家  ›  专栏  ›  技术社区  ›  Daniel Vandersluis

从路由指定参数

  •  0
  • Daniel Vandersluis  · 技术社区  · 15 年前

    考虑一下 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 (dry——除了搜索内容的额外参数外,其他所有内容都是相同的),但会固有地设置 type --有办法吗?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Ryan Bigg Andrés Bonilla    15 年前
    map.with_options(:controller => "people", :action => "index") do |people|
      people.males 'males', :type => "m"
      people.females 'females', :type => "f"
    end
    

    那么你应该能做到 males_path males_url 为了找到这条路,我相信你能猜出你是怎么找到通往女性的路的。