Визуализировать общедоступный html для динамических баннеров в Rails?

Я хотел бы отображать определенные фрагменты HTML для отображения баннеров, потому что каждый баннер имеет разную природу (некоторые изображения, некоторые флэш-памяти и т. д.). Каждый файл баннера находится в папке app/public/banners/. Я пробовал много способов, например:

render :file => "/banners/somebanner.html"

Но он не может найти файл, потому что Rails ищет в разделе app/views. Любые идеи ? Спасибо!

Отсутствуют шаблоны banners/somebanner.html в пути просмотра app/views


person Ben Orozco    schedule 21.04.2010    source источник


Ответы (2)


Я никогда не уставал, но только что нашел этот пост в Google

render :file => "#{RAILS_ROOT}/public/banners/somebanner.html"

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

http://workingwithrails.com/forums/4-ask-a-rails-expert/topics/1178-render-file-rails-root-public-layouts-mylayout-cached

также вы, вероятно, хотите :layout => false с этим

person house9    schedule 21.04.2010
comment
Как вы и предсказывали, он не может кэшировать содержимое :( - person Ben Orozco; 21.04.2010
comment
как насчет постановочного или производственного режима? в идеале он не кэшируется в режиме разработки, поэтому изменения отображаются без перезапуска сервера - проблема из этой ссылки заключалась в том, что он кэшировался в режиме разработки? - person house9; 21.04.2010
comment
RAILS_ROOT устарел, используйте Rails.root сейчас - person Jean; 17.04.2018

Временное исправление:

Переместил «public/banners» в «app/views/banners», а затем сделал ссылку на «/public», чтобы моя команда могла добавлять новые баннеры.

person Ben Orozco    schedule 21.04.2010