raf*_*mvc 32 ruby activerecord ruby-on-rails ruby-on-rails-3
我的rails应用程序中有100多个模型,只是为了组织,我将它们分成文件夹,所有这些仍然在主模型文件夹下,只是为了更简单地浏览项目并查看相关的文件.
这是一个坏主意吗?rails的方法是什么?
von*_*rad 62
不,这不是一个坏主意.很多人都这样做,在大型应用程序中我没有它.
有两种方法:
首先是移动你的模型.但是,您必须告诉Rails加载任意模型(因为它不知道它们在哪里).像这样的东西应该做的伎俩:
# In config/application.rb
module YourApp
class Application < Rails::Application
# Other config options
config.autoload_paths << Dir["#{Rails.root}/app/models/*"]
end
end
Run Code Online (Sandbox Code Playgroud)
第一种方法很简单,但并不是最好的方法.第二种方法涉及使用他们所在的组来命名您的模型.这意味着,而不是拥有User
和,UserGroup
而且UserPermissions
,您拥有User
,User::Group
和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
Run Code Online (Sandbox Code Playgroud)
您可以根据需要指定多个级别的命名空间,这样User::Group::Permission
就可以了.
pat*_*ent 16
对于100个型号,它几乎是一个要求.100个型号在一个目录中有噪音.
试试这个来了解Rails Way(tm)
rails new MultiDirectoryExample
cd MultiDirectoryExample
rails generate scaffold User::Photo description:string
Run Code Online (Sandbox Code Playgroud)
观察脚本输出并查看生成的文件.
归档时间: |
|
查看次数: |
5556 次 |
最近记录: |