gpt4 book ai didi

ruby - 如何要求具有继承类的文件夹?

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:39 25 4
gpt4 key购买 nike

我有一个包含相互继承的类的目录:

# auth_serializer.rb
class AuthSerializer < UserSerializer
end

# user_serializer.rb
class UserSerializer
end

我这样要求:

Dir[File.expand_path('./**/*.rb', __dir__)].each do |f|
require f
end

出现错误:

  uninitialized constant UserSerializer
# ./app/serializers/auth_serializer.rb:1:in `<top (required)>'

我理解为什么会发生此错误 - 因为 AuthSerializerUserSerializer 之前需要。如何在没有此错误的情况下要求一堆文件?我不想将 user_serializer.rb 重命名为 0_user_serializer.rb 或在每次发生此错误时自定义要求顺序。

最佳答案

因为 require 只会加载一次需要的文件,所以制作这个结构不会有什么坏处:

# auth_serializer.rb
require_relative 'user_serializer'
class AuthSerializer < UserSerializer
end

# user_serializer.rb
class UserSerializer
end

它将解决您的问题,并允许在需要时仅要求 auth_serializer

关于ruby - 如何要求具有继承类的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57707004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com