В моем контроллере есть следующий код:
class PagesController < Spree::BaseController
before_filter { render_404 if params[:id] =~ /(\.|\\)/ }
caches_action :show, :if => Proc.new { Spree::Config[:cache_static_content] }, :layout => false
respond_to :html
# GET /pages/about-us
def show
@page = Page.published.find_by_permalink(params[:id])
if @page.blank?
render_404
else
respond_to do |format|
#check if this is only a partial update
unless @page.is_subpage?
format.html # show.html.erb#
else
format.html {render :layout => false, :text => @page.body}
end
end
end
end
end
По сути, если страница является sub_page, мне не нужно макетировать, только HTML, содержащийся в @ page.body (запрос ajax).
Это отлично работает в разработке, но на героку похоже игнорирует render :layout => false
Я проверял на консоли heroku, что @ page.is_subpage?работает как положено, что и делает, что исключает любые проблемы, связанные с исключением.
Есть ли другой способ сделать: layout => false?
Что я на самом деле получаю на heroku, это полная страница с div (включая все, что находится в макетах / приложении).html.erb
РЕДАКТИРОВАТЬ:
Камень, который я использую, можно найти здесь