所以我有两个类app/models/auction.rb
和app/models/configuration/auction.rb
#app/models/auction.rb
class Auction
end
#app/models/configuration/auction.rb
class Configuration::Auction
attr_accessor :auction_preferences
end
我收到错误
无法自动加载恒定的竞价,预期 /app/models/configuration/auction.rb进行定义
执行以下行时
(Configuration::Auction.new(user).enable_auction? ? Auction.get_details(user) : "NA")
答案 0 :(得分:2)
具有两个核心名称相同的对象有时会使自动加载器感到头疼,因为它无法完全确定您要使用的命名空间。
您可以尝试对第二个Auction
对象进行更明确的显示,并指定::Auction
来表示您是指没有命名空间的类。
但是我也会考虑您的配置对象命名方案。在不了解对象模型的情况下,很难确切地说,但是对于配置对象来说,AuctionConfiguration
可能是一个更好的模型名称。
答案 1 :(得分:0)
LoadError error
的一个可能的根本原因是,从Rails 5.2.0开始,对自动加载进行了更改,这些更改要求(至少)需要定义子模块(命名空间)(作为常量)。
在原始帖子的示例中,module Configuration
应该在app/models/configuration.rb
文件中定义。
有关更多详细信息,请参阅此here。