Rails table_name_prefix 未按预期工作

Rails table_name_prefix is not working as expected

我正在使用 Rails 4。我有 app/models/admin.rbapp/models/admin/retention_email.rb 类似的东西:

# app/models/admin.rb
module Admin
  def self.table_name_prefix
    "global_admin_"
  end
end


# app/models/admin/retention_email.rb
module Admin
  class RetentionEmail < ApplicationRecord
  end
end

现在我期待 Admin::RetentionEmail 使用 global_admin_retention_emails table 但似乎我仍在使用 retention_emails:

2.4.1 (main):0 > Admin::RetentionEmail.table_name
=> "retention_emails"

有什么解决办法吗?

添加 config/initializers/namespace.rb 为:

require Rails.root.join('app', 'models', 'admin')