В какой папке я должен помещать "глобальные" общие частичные шаблоны?

Я использую Ruby on Rails 3.0.7, и я планирую использовать частичные шаблоны. Все классы в моем приложении будут использовать одинаковые частичные части, поэтому я должен решить, где их разместить.

Можно ли разместить "глобальные" общие частичные шаблоны в папке lib? Если нет, то, что является обычной практикой для выбора папки, где их можно разместить? Любые советы по правильному названию и загрузке этой папки?

Ответ 1

Стандарт помещает все разделяемые части в app/views/shared и ссылается на них как

render :partial => 'shared/partial_name'

Если у вас есть стандартная "строка в списке" частичная (скажем, для индексной страницы), вы можете использовать общий частичный, например:

# To render a single object row:
render :partial => 'shared/item', :locals => { :item => @item }
# Or to render them all:
render :partial => 'shared/item', :collection => @items

Ответ 2

Рельсы 4:

введите частичные файлы, которые вы собираетесь использовать через ваше приложение, в /app/views/application

Тогда в любом месте приложения вы можете легко:

render partial: 'partial_name', variable_name: variable

Дополнительным преимуществом является то, что вы всегда можете переопределить частичное в определенном пространстве просмотра, переопределив то, что это частичное означает в /app/views/controller_name/_partial_name.html.erb, а вызовы частичной ссылки будут ссылаться на более конкретный контекст, в котором вы находитесь. Нет, вы получаете частичный уровень приложения.

Предложение, взятое из Thoughtbot

Ответ 3

Соглашения должны помещать их под app/views/shared

Если у вас много партикулов, я бы порекомендовал вам поместить их в подкаталоги этой папки, независимо от того, что имеет смысл для вашего приложения, поскольку наличие большого количества частичных файлов в одном каталоге обычно не является хорошей практикой.