【问题标题】:Refactor large routes file重构大型路由文件
【发布时间】:2011-12-31 03:48:55
【问题描述】:

我正在制作各种路线,格式如下:

  get "address/1000broadway"
  get "address/300main"

此路线列表可能会增长到数千条。管理此问题的最佳方法是什么?我可以简单地在路由文件中列出它们吗?或者更好地要求包含路线的各种文件?必须加载大型 routes.rb 文件的应用程序是否存在任何潜在的性能问题?

【问题讨论】:

  • 1000broadway300main 不被简单地作为变量处理是否有令人信服的理由?
  • 属性是:location。每个地址都有一个由其位置属性命名的唯一模板; app/views/address/1000broadway.html.erb, app/views/address/300main.html.erb 所以此外还会有数千个模板,这也可能是一个问题。
  • 问题是每个地址都有一组独特的规范,不能全部放入数据库字段。相反,我决定将信息写在 html 中并手动将其放入模板中。我知道这可能超出了 Rails 的约定。
  • 伙计,这听起来像是一条痛苦的道路。如果每一个都是真正独特的,这可能是最好的方法,但是你真的没有办法找到,比如说,以某种方式“共同”的八个或二十个,并减少静态内容/模板的数量有吗?

标签: ruby-on-rails ruby


【解决方案1】:

阅读cmets, 这感觉很像 CMS 类型问题。

为此,我会说“将每个地址视为一个‘页面’,然后将自定义布局放入数据库中”

但您认为模板太复杂,无法以这种方式处理。

你看过liquid吗? 也就是说,它允许您将模板存储在数据库中,但使用条件逻辑。

至少, 我建议组织你的网址。

resources :address do
  collection do
    get :1000broadway
    get :300main
  end
end

【讨论】:

  • 我决定将所有文本放入数据库并使用 RedCloth 进行格式化。
猜你喜欢
  • 2012-03-16
  • 2013-11-15
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多