在rails3中使用非英语控制器

时间:2010-10-12 15:18:32

标签: ruby-on-rails ruby

我必须遵循以下问题:

如果我想遵循Rails命名约定,我必须使用模型名称的复数版本作为我的控制器名称。

示例:

rails g scaffold_controller Content

在这种情况下,我有一个模型(内容),上一个命令将生成一个名为Contents的控制器。

那么,如果我有一个德国网站,我想使用 site.tld / inhalt / something-something 而不是 site.tld / contents / something-something

我在想两个解决方案:

a,在我生成控制器时使用该单词的德语版本(afaik不支持scaffold_controller生成器

b,用英语生成整个站点(模型,控制器)并将特定请求路由到具有命名路由的某个控制器,如:

match 'logout', :to => 'sessions#destroy'

在这种情况下,我不能使用RESTful路由,如:

resources :products

您怎么看?

1 个答案:

答案 0 :(得分:2)

您可以使用路由配置更改与此控制器匹配的网址:

resources :contents, :path_names => { :new => 'neue', :edit => 'bearbeiten' }, :path => 'inhalt'

您视图中的contents_path方法仍然可以使用,但它会根据需要输出/inhalt并且匹配。但/contents路径不匹配。因此,如果您致电edit_content_path(@content),您将获得/inhalt/1/bearbeiten之类的内容。

有关详细信息,请参阅Rails routing guide