В какой папке я должен помещать "глобальные" общие частичные шаблоны?
Я использую 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
Если у вас много партикулов, я бы порекомендовал вам поместить их в подкаталоги этой папки, независимо от того, что имеет смысл для вашего приложения, поскольку наличие большого количества частичных файлов в одном каталоге обычно не является хорошей практикой.