将模型划分到目录中是一个坏主意吗?

2024-01-20

我的 Rails 应用程序中有 100 多个模型,为了便于组织,我将它们划分为文件夹,所有这些仍然位于主模型文件夹下,只是为了更轻松地在项目上导航并查看相关文件。

这是一个坏主意吗? Rails 的方法是什么?


不,这不是一个坏主意。很多人都这么做,在大型应用程序中我就离不开它。

有两种方法可以做到这一点:

第一个是移动你的模型。但是,您必须告诉 Rails 加载任性的模型(因为它不知道它们在哪里)。像这样的事情应该可以解决问题:

# In config/application.rb
module YourApp
  class Application < Rails::Application
    # Other config options

    config.autoload_paths << Dir["#{Rails.root}/app/models/*"]
  end
end

第一种方法很简单,但并不是最好的方法。第二种方式涉及命名空间您的模型及其所在的组。这意味着而不是User and UserGroup and UserPermissions, 你有User, User::Group and User::Permission.

要使用它,请生成如下模型:rails generate model User::Group。 Rails 会自动为您创建所有文件夹。另一个好处是,使用这种方法,您不必拼写命名空间内关联的完整模型名称:

class User < ActiveRecord::Base
  belongs_to :group # Rails will detect User::Group as it's in the same namespace
end

class User::Group < ActiveRecord::Base
  has_many :users
end

您可以根据需要指定任意级别的命名空间,因此User::Group::Permission将是可能的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将模型划分到目录中是一个坏主意吗? 的相关文章

随机推荐