让我们说,对于同一型号,我将有show.html.erb
的两个版本。
第一个是默认值,我将调用show.html.erb
。
第二个,例如 - show1.html.erb
。
所以,我想使用第一个在浏览器上显示,第二个用于打印。
我是否必须在控制器中为此创建一个方法?
一般情况下,除了脚手架创建的视图外,还可以创建其他视图吗?
答案 0 :(得分:2)
您可以使用respond_to方法
使用不同格式的输出假设你需要html和文本版本
def action
# do some logic
respond_to do |format|
format.html
format.text
end
end
在这种情况下,路线“... / action”将呈现show.html.erb。对于“... / action.txt”,将呈现show.text.erb。您可以通过在format.text { render 'show1' }
了解更多:http://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to
答案 1 :(得分:1)
为什么不使用这个wicked_pdf
gem:https://github.com/mileszs/wicked_pdf生成pdf用于打印:
添加Mime::Type.register "application/pdf", :pdf
到config/initializers/mime_types.rb
:
def show
respond_to do |format|
format.html
format.pdf do
render :pdf => "file_name"
end
end
end
现在您只需要创建一个show.pdf.erb
文件并将其用于打印。