【发布时间】:2011-08-02 10:36:25
【问题描述】:
例如,我有一个从网站收集数据并返回对象集合的类。该数据不存储在数据库中,因此它不是模型。这个类被许多控制器使用,所以它不是控制器。
我可以在哪里放置这些文件?
【问题讨论】:
标签: ruby-on-rails
例如,我有一个从网站收集数据并返回对象集合的类。该数据不存储在数据库中,因此它不是模型。这个类被许多控制器使用,所以它不是控制器。
我可以在哪里放置这些文件?
【问题讨论】:
标签: ruby-on-rails
我通常将这些类放在 lib 目录中。而不仅仅是需要它们。
【讨论】:
应该进入 lib 文件夹!可能是模块!
【讨论】:
它是一个值对象并且应该在整个站点中保持不变,并且您的控制器或其他组件应该使用它来自模型的引用,类引用应该在模型中并且它自己的类可以被赋予价值对象
【讨论】:
我会将它们放在应用程序/模型中。那么您就不必处理自动加载路径或 require 与 require_dependency。
仅仅因为一个类没有持久化到您的数据库中并不意味着它不是您的数据模型的一部分。将它们放入 lib 表明它们是某种实用程序类,与您的应用没有太大关系。
Rails 混淆了模型和持久性。我认为将一些业务逻辑与持久实体一起使用是很好的,但没有理由不能在 ActiveRecord 对象之外拥有模型逻辑。
【讨论】: