gpt4 book ai didi

ruby-on-rails - 如何创建命名空间模型?

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:40 24 4
gpt4 key购买 nike

我想创建这样的命名空间模型:

rails g model aaa
rails g model aaa/bbb
rails g model aaa/ccc

当我运行 rails g model aaa/bbb 时,Rails 会自动生成:

module AAA
def self.table_name_prefix
'aaa_'
end
end

AAA 也是一个模型,所以我需要把它放在模块中:

Module AAA
def self.table_name_prefix
'staff_'
end

class AAA < ActiveRecord::Base
end
end

但这行不通。当我运行 AAA.new 时,Rails 说:

NoMethodError: undefined method `new' for AAA:Module

我如何实例化这个模型?

最佳答案

您只能在 class 上调用 new,并且您在 AAA 中嵌套了一个 AAA::AAA 模块。您要么需要调用 AAA::AAA.new,要么不将该类包装在模块中。即使您将 AAA 设为顶级类而不是模块,您仍然可以在其中嵌套 AAA::BBB。看起来像这样:

class AAA < ActiveRecord::Base
class BBB < ActiveRecord::Base
end
end

然后你可以同时调用 AAA.newAAA::BBB.new

关于ruby-on-rails - 如何创建命名空间模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33613420/

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