Ruby on Rails:我应该在哪里存储模块?

我是Ruby on Rails的新手,我的问题是关于应用程序设计,基于Rails 3.在Rails上创建标准网站(如博客)的互联网上有很多数据,但我的应用程序需要的不仅仅是“发布和阅读“我不知道如何实现这一点。

想法:

  1. “Route”模型包括许多航空公司模块:“Ryanair”,“easyJet”等。
  2. “Route.Update”方法在每个航空公司模块上调用“UpdateRoutes”(例如,“Ryanair.UpdateRoutes”,“easyJet.UpdateRoutes”)
  3. 对于更多模型(例如“Flight.find”)和更多航空公司(“Delta.FindFlights”),它应该以相同的方式工作

问题:

  1. 我应该在哪里存储所有模块? 我在Rails中看不到任何app / modules文件夹。
  2. 如果我的模块需要gem,我应该将它们包含在模块中还是模型中(实际使用它们的地方)?
  3. 我想让我的应用程序可扩展。 例如,我想添加一个新的工作航空公司(模块)而不更改“路线”,“飞行”或任何其他模型中的任何代码。 我想象类似于“IncludeAirlines”的方法,它将通过模块/航空公司/ 名称 .rb,包括每个模块并调用它所需的方法(例如名称 .UpdateRoutes)。 有没有更好的方法在Ruby on Rails中实现它?

您可能知道,模块通常用作命名空间或mixins。

放置模块的位置取决于模块与app目录的紧密耦合程度。 存储模块中的一些模式:

  1. / lib目录,如果模块没有特别“交互”或关注应用程序/并且您将模块视为内部插件。

  2. 如果您的模块是业务逻辑的核心,那么app / models目录将是一个合适的位置。 这里是一个流行的用例,您可以使用模块作为混合来干燥您的模型/控制器。

  3. 37信号引入了一种模式,将它们视为“关注点”并将其存储在app / Concer中。

如果您的模块使用gem,您可能需要在模块中需要gem(有时候根本不需要)。

你的第三个问题不明确。 对于那个很抱歉。 不太清楚你想要做什么。