Нет, в обычном проекте Rails это не обязательно. Просто назовите ваши модели и контроллеры обычным способом, например, User или UsersController.
Другое дело, что когда ваш проект увеличивается в размерах, вам может понадобиться организовать ваши модели в подмодули. Один из подходов состоит в том, чтобы расширить ваши модели проблемами приложения, как показано, например, здесь или здесь .
Что касается организации контроллеров, один из подходов заключается в создании модуля в каталоге lib, который затем включается в ApplicationController, например, так:
In lib/authentication.rb
:
module Authentication
def self.included(base)
base.send :before_filter, :login_required
base.send :helper_method, :current_user, :logged_in?
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token]) if cookies[:remember_token].present?
end
#...
end
В app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
include Authentication
#...
end
Чтобы это работало, вам нужно добавить
config.autoload_paths << "#{config.root}/lib"
в ваш config/application.rb
файл
Однако, если вы планируете построить свой Rails-проект в качестве Rails Engine, вы можете следовать некоторым соглашениям об именах. Хорошим примером Rails Engine является forem .