Ruby on rails 什么';在Rails中命名服务对象的正确方法是什么?

Ruby on rails 什么';在Rails中命名服务对象的正确方法是什么?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想创建多个类,每个类都在同一名称空间中,我希望它们位于不同的文件中 i、 e #应用程序/服务/核心元标记 module Metatags::CoreMetatags #... end 和#应用程序/服务/推特卡 module Metatags::TwitterCard #... end 和#app/services/facebook\u open\u graph module Metatags::FacebookOpenGraph #... end 我希望这些模块中的每一个

我想创建多个类,每个类都在同一名称空间中,我希望它们位于不同的文件中

i、 e

#应用程序/服务/核心元标记

module Metatags::CoreMetatags
  #...
end
#应用程序/服务/推特卡

module Metatags::TwitterCard
  #...
end
#app/services/facebook\u open\u graph

module Metatags::FacebookOpenGraph
  #...
end
我希望这些模块中的每一个都被放入不同的文件中。但是,当我尝试执行此操作时,会出现以下错误:

Unable to autoload constant TwitterCard, expected 
/Users/peter/project/app/services/twitter_card.rb to define it

我做错了什么?这样命名名称空间不正确吗?或者这是一个目录命名问题…?

您需要名称空间的目录,以便:

  • Metatags::corematatags
    进入
    app/services/Metatags/core\u Metatags.rb
  • Metatags::TwitterCard
    进入
    app/services/Metatags/twitter\u card.rb
  • Metatags::facebook opengraph
    进入
    app/services/Metatags/facebook\u open\u graph.rb

您需要将它们放在app/services/metatags folderwhammo中。工作起来很有魅力