В общем: следуйте соглашениям об именах Rails при переводе имен классов в местоположения файловой системы. (то есть: сохранить класс FooHelper::Bar
в foo_helper/bar.rb
)
Вы можете сделать исключения для небольших вспомогательных классов, которые используются только один раз, и сохранить их в том же файле, что и ваша модель, но это должны быть исключения. (но верно и обратное, не создавайте однострочные тысячи однострочных файлов)
Используйте модули и пространства имен классов в ваших интересах. Если у вас есть вспомогательный класс, который используется только вашей моделью (и зависит от нее), поместите их в пространство имен класса модели:
class TheModel::HelperClass
end
расположение в файловой системе будет app/models/the_model/helper_class.rb
И то, что не зависит от вашей модели, возможно, все еще может быть пространством имен
module Bar
class Foo
end
end
живет в bar/foo.rb
, конечно
Вы, вероятно, не должны бояться помещать вещи, которые не являются моделями, в lib
- это то, что этот каталог для
Я бы сказал, что проблемы , хотя и полезны, но на самом деле это не правильный путь, потому что это способ разбить один класс на несколько файлов, а вы кажется, делают это.