/ Published in: Rails
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#in config/initializers/mime_types.rb, declare Mime::Type.register "device/zzz", :zzz ...... request.format => "device/zzz" ...... respond_to do |format| format.zzz { puts "abcabcabcabcabc"} end =============================================================================================================== In a rails3 app (3.0.5), I've declared the following mime-type (in config/initializers/mime_types.rb): Mime::Type.register_alias "text/html", :print In orders_controller.rb, I've the following action: respond_to :html def show @order = Order.find(params[:id]) respond_with @order do |format| format.print end end Then I currently have 2 identical views corresponding to the html and print format: show.html.haml: = @order.name show.print.haml: = @order.name Everything works as expected with the 'html' path, ie /orders/2 renders the shows the name of the order with id == 2, but if I try /orders/2.print, I get a undefined method 'user' for nil:NilClass as if the @order instance variable isn't passed to the 'print' view. What am I missing? Any ideas? It should be trivial, but I'm stuck on this since a few hours!