Я бы сделал другой макет для страниц iframe, например, app/views/layouts/iframe.html.erb
, который не имеет ваших обычных верхних и нижних колонтитулов, может иметь другой CSS и т. Д.
Тогда вам просто нужно заставить действия контроллера использовать этот макет при рендеринге, в зависимости от ситуации. Вы можете сделать это, если вы вызываете render явно, например:
render "show", :layout => "iframe"
Но, вероятно, проще установить его на уровне контроллера:
class SomeController < ApplicationController
layout "iframe", :only => "show"
end
Вы также можете поместить свою логику для выбора правильного макета (что бы это ни было - я предполагаю, что это не главное в вопросе) в метод:
class SomeController < ApplicationController
layout :current_layout
private
def current_layout
# Return the correct layout for the current request.
params[:iframe] ? "iframe" : "application"
end
end