ruby-on-rails - 如何简化此路由编码以减少行数?
问题描述
我已经扩展了我的设计控制器(请参阅这篇文章扩展设计注册控制器),现在我想编辑我的路线。
这条路线运行良好,但看起来很笨重。有没有办法重构此代码以减少行数?
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: "sessions/sessions",
registrations: "sessions/registrations",
password: "sessions/passwords",
confirmations: "sessions/confirmations",
omniauth: "sessions/omniauth",
unlocks: "sessions/unlocks",
}
end
解决方案
我要补充一点,在我个人看来,动态生成的路线有时可能比它们的价值更麻烦。
我相信以下内容会起作用。您可以从一组路径名中构造一个散列,然后使用它来分配您的控制器。
paths = ["sessions", "registrations", etc..]
routes = paths.each_with_object({}) { |path, h| h[path] = "sessions/#{path}" }
devise_for :users, controllers: routes
推荐阅读
- azure - 如何防止创建其他 Azure Active Directory 租户/目录?
- isabelle - 如何使用 Isabelle/HOL 证明以下陈述?
- c# - Http PostAsJsonAsync 获取空参数(DTO)
- node.js - 为什么我无法从 JSON 对象中获取一些键值?
- ios - Xcode11 应用程序加载器
- android - Visual Studio 2019,Android 应用程序无法启动
- spring-boot - 在 Spring Boot 应用程序中记录所有加载的配置
- c - 如何将音频与处理后的视频合并和同步以进行实时流式传输?
- azure-cosmosdb - CosmosDb - 物理分区放置,RU 影响
- java - 变量之间的 Java 随机数