Nein, es ist keine schlechte Idee. Viele Leute machen das und ich könnte in großen Anwendungen nicht ohne sie leben.
Es gibt zwei Möglichkeiten, es zu tun:
Die erste ist nur Ihre Modelle zu bewegen. Sie müssen jedoch Rails mitteilen, dass es die eigenwilligen Modelle laden soll (da es nicht weiß, wo sie sind). So etwas sollte den Trick erfüllen:
# In config/application.rb
module YourApp
class Application < Rails::Application
# Other config options
config.autoload_paths << Dir["#{Rails.root}/app/models/*"]
end
end
Der erste Weg ist einfach, aber ist nicht wirklich der beste Weg. Der zweite Weg beinhaltet Namensräume Ihre Modelle mit Gruppen in sie sind. Das bedeutet, dass anstelle von User
und UserGroup
und UserPermissions
mit, Sie haben User
, User::Group
und User::Permission
.
Um dies zu nutzen, ein Modell wie folgt erzeugen: rails generate model User::Group
. Rails erstellt automatisch alle Ordner für Sie. Ein weiterer Vorteil ist, dass mit diesem Ansatz, werden Sie das vollständige Modell müssen Namen für Verbände in einem Namespace nicht buchstabieren:
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
Sie können jedoch viele Ebenen von Namespacing angeben, wie Sie wollen, so würde User::Group::Permission
sein möglich.
Über 100 Modelle? Ist es ein großes Projekt? –