0

除了 id 之外,我如何说服 rails 在 url 中使用记录属性?

例如,考虑一个Publication具有属性的类pub_date,最好有一个类似的 url

 /publications/#{pub_date.year}/#{id}

虽然我可以to_param用来更改“id”部分,但我似乎记得生成一个带有“/”的参数是一个坏主意。所以使用类似的东西

def to_param
  "#{pub_data.year}/#{super}"
end

似乎不可行。此外,使用其他 URL 模板似乎是不可能的,例如,如果我想在 url 的另一部分使用该属性,例如:

 /#{pub_date.year}/publications/#{id}

我可以定义匹配的路线,例如

  match "/xxx/:foo/:bar" => "ctrlr#act"

但我不确定如何使用自动生成的_urland助手。_path

4

1 回答 1

0

你可以使用 :as 选项

get "/xxx/:foo/:bar" => "ctrlr#act", :as => :xxx

接着

xxx_path(:foo => 'asd', :bar => 'qwe') # "/xxx/asd/qwe"
于 2012-08-15T11:03:42.670 回答