如何在rails 3中定义自定义嵌套路径



我有一个模型叫client,另一个模型叫client_preference。它们之间的关系是一个client有多个client_preferences。现在我想创建更新和删除client_preferences的方法。为此,我生成如下路由:

map.resources :clients do |client|
  client.resources :client_preferences, only: [:edit, :update, :destroy]
end
我得到以下命名的路由:
edit_client_client_preference GET    /clients/:client_id/client_preferences/:id/edit(.:format)                     {:controller=>"client_preferences", :action=>"edit"}
client_client_preference      PUT    /clients/:client_id/client_preferences/:id(.:format)                          {:controller=>"client_preferences", :action=>"update"}
                              DELETE /clients/:client_id/client_preferences/:id(.:format)                          {:controller=>"client_preferences", :action=>"destroy"}

现在,我想自定义从client_client_preferenceclient_preference的路由名称,类似地为生成的其他路由定制,以便客户端在生成的路径名称中不重复两次。有办法做到这一点,还是我需要手动定义路由?

使用:as选项应该允许创建更干净的命名帮助器:

map.resources :clients do |client|
  client.resources :client_preferences, only: [:edit, :update, :destroy], as: 'preference'
end

现在应该映射到client_preference

希望有帮助!

有一个关键字:as,它可以帮助您在Rails中创建自定义的路径名。也有现有的答案这个问题:Rails 3嵌套资源短名称?

相关内容

  • 没有找到相关文章

最新更新