我想创建多个类,每个类都位于相同的命名空间中,我希望它们位于不同的文件中。
即。
# app/services/core_metatags
module Metatags::CoreMetatags
#...
end
和# app/services/twitter_card
module Metatags::TwitterCard
#...
end
和# app/services/facebook_open_graph
module Metatags::FacebookOpenGraph
#...
end
我希望将每个模块放入不同的文件中。但是,当我尝试这样做时,我收到以下错误:
Unable to autoload constant TwitterCard, expected
/Users/peter/project/app/services/twitter_card.rb to define it
我做错了什么?这种方式命名空间不正确吗?或者它是目录命名问题......?
答案 0 :(得分:2)
您需要命名空间的目录,以便:
Metatags::CoreMetatags
进入app/services/metatags/core_metatags.rb
。Metatags::TwitterCard
进入app/services/metatags/twitter_card.rb
。Metatags::FacebookOpenGraph
进入app/services/metatags/facebook_open_graph.rb
。