Ruby 1.8.7,Rails 2.3.11
我一直在尝试answers,这似乎是我已经问过的问题,但是对我来说都没有成功(可能是因为我对Rails相对较新并且没有正确理解它们)
我正在尝试为模型(海报)创建一个适合打印的视图,可以在/ posters / print / 1访问。如何让打印操作使用与索引,新建,编辑和显示不同的布局文件?
一个答案说render :layout => 'otherlayout'
,我把它放在打印控制器方法中以制作format.xml { render :layout => 'print', :xml => @poster }
。当我刷新(清除缓存后)页面时,这并没有改变任何内容。
另一个答案说
layout 'layout', :only => [:first_action, :second_action]
layout 'second_layout', :only => [:third_action, :fourth_action]
我把它放在海报控制器文件的顶部,如下所示:
layout 'posters', :only => [:show, :edit, :index]
layout 'print', :only => [:print]
但似乎只使用后一行(show,edit和index直接从他们自己的.html.erb文件呈现,而不是包含在海报布局中)。
如果我需要发布更多信息,请与我们联系。
答案 0 :(得分:1)
当你渲染XML时,它没有得到布局,因为它渲染了XML,它不使用视图。
对于您要执行的操作,您只需在布局中使用stylesheet_link_tag('print', :media => :print)
创建打印机样式表即可。打印时,浏览器会自动使用它。
答案 1 :(得分:1)
您可以使用几种方法。一个是布局,另一个是通过CSS。我不会选择另一个页面加载和数据库调用,而是选择不难的CSS方法,只需更改要打印的媒体类型,如下所示:
stylesheet_link_tag 'print', :media => 'print'
对于您尝试过的布局:
def print
layout 'print'
end