我必须遵循以下问题:
如果我想遵循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
您怎么看?
答案 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。