Ruby on rails 如何将URL中的记录属性与Rails一起使用?
我如何说服rails在url中除了id之外还使用记录属性Ruby on rails 如何将URL中的记录属性与Rails一起使用?,ruby-on-rails,ruby,ruby-on-rails-3,clean-urls,Ruby On Rails,Ruby,Ruby On Rails 3,Clean Urls,我如何说服rails在url中除了id之外还使用记录属性 例如,考虑一个类发布>代码>属性>代码> PubDeDATION/COD>,有一个像这样的URL会很好。 /publications/#{pub_date.year}/#{id} 虽然我可以使用to_param来更改“id”部分,但我似乎记得,生成包含“/”的参数是个坏主意。所以使用类似 def to_param "#{pub_data.year}/#{super}" end 似乎不可行。另外,对于其他url模板,这似乎是不可能
例如,考虑一个类<代码>发布>代码>属性>代码> PubDeDATION/COD>,有一个像
这样的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"
但我不确定如何使用自动生成的\u url
和\u路径
帮助程序。您可以使用:as选项
get "/xxx/:foo/:bar" => "ctrlr#act", :as => :xxx
然后
xxx_path(:foo => 'asd', :bar => 'qwe') # "/xxx/asd/qwe"
是的,但是这些要求我一直明确地指定参数,当它们已经隐含在对象值中时,我想这篇文章有你需要的答案: