Checking for SSL in a view

Here's the situation:

* I have a site where a few pages are ssl-required but the whole site is ssl-allowed. (In other words, most of the site can be reached by either https or http.)

* In order to minimize user's browser warnings, I want to use https for all assets on pages when the request is https. This is easy for requests on the same host (e.g. css, javascript since we are not using a separate asset host yet) but some images are hosted by an off-site server.

* These images have https versions available, but on a different host, e.g. regular images are at http://images.example.com/images/filename.jpg but secure at https://ssl-images.example.com/images/filename.jpg. I have tweaked my image-URL-producing functions to produce the right image URL when they are asked, e.g. def get_image_url(ssl=false), so get_image_url returns http://images.example.com and get_image_url(true) returns https://ssl-images.example.com.

How do I know, inside a view, when to ask that function for SSL and when not?

* request.ssl? doesn't appear to be available inside views. (Not surprising given that it's part of ActionController.)

* I tried setting a global variable inside the controller (e.g. @ssl_request = request.ssl?) but for some reason that's not working, either.

It seems as though Rails is not getting the message that the request is SSL. I'm using Nginx + Passenger for hosting; is there something similar to the "proxy_set_header X-FORWARDED_PROTO https;" which should be used when the request isn't being proxied?

Thanks,

pjm