Ruby on rails Ruby on rails to_param具有多个搜索引擎优化字段

Ruby on rails Ruby on rails to_param具有多个搜索引擎优化字段,ruby-on-rails,rest,seo,Ruby On Rails,Rest,Seo,我正在努力使我的URL更漂亮,并且仍然使用restful资源。我理解,如果对象具有如下属性,则可以重写to_param方法: def to_param self.name end 这将为您提供路径/:model/:name。这很简单,但我必须能够用多种不同的语言使用相同的名称。我找不到有关如何执行此操作的博客条目,因此我如何重写to_param方法以向我提供类似于/:model/:language/:name的路径?您可以始终执行以下操作: /language/:language/mode

我正在努力使我的URL更漂亮,并且仍然使用restful资源。我理解,如果对象具有如下属性,则可以重写to_param方法:

def to_param
  self.name
end
这将为您提供路径/:model/:name。这很简单,但我必须能够用多种不同的语言使用相同的名称。我找不到有关如何执行此操作的博客条目,因此我如何重写to_param方法以向我提供类似于/:model/:language/:name的路径?

您可以始终执行以下操作:

/language/:language/model/:name
您可以使用嵌套管线执行此操作:

map.resources :languages do |l|
  l.resources :profiles
end
那么你的路线是:

langauge_profile_url('spanish', @profile)
然而


根据你想做什么,你可能会更好地使用内置的东西。这样用户就可以用不同的语言浏览网站了吗?

好的,我该怎么做?my模型是“person”,因此根据这个答案,一个名为“bob”的说“西班牙语”的人需要表示为/language/spanish/person/bob。看起来很合理,你能给我指一个如何做到这一点的资源吗?你知道如何设置路由来做类似的事情吗?我实际上已经在使用i18n了,尽管我的数据库中有重复的名称对(使用不同的语言字段),我希望我可以不必指定任何特殊的内容,就可以使用我的旧路由“只工作”在宏伟的计划中,我想它不会花费太多额外的时间。你可以指定语言并将其存储在cookie中?这样你就不必在路线中显示它。