On Thursday, March 7, 2013 10:49:48 AM UTC, ngw wrote:
>
> On Thursday, March 7, 2013 11:45:22 AM UTC+1, ngw wrote:
>
>> CUT
>
>
> Sorry for the formatting
>
> config.action_controller.asset_host = Proc.new { |source, request=nil|
>     if request && request.ssl?
>         "https://staging.foobar.it";
>     else
>         "http://assets#{ <http://assets/#%7B> ( source.length % 4 ) + 1 }.
> staging.foobar.it" 
>     end 
> }
>  
>
Hope it's more clear. It's bascially copied from the docs :)
>
>
Looking at the code, rails uses the arity of your proc to decide what to 
do. If the arity is 1 it passes just the source, if it is 2 it passes both, 
but will blow up when there is no request available (and warn you to) and 
if the arity is negative (you can pass as many optional arguments as you 
want) it passes both.

the problem is that lambda {|x,y=nil|} counts as an arity of 1, so rails 
doesn't try to pass the request, if you do lambda {|x,*y|} then you should 
get the request in y (y will be an array).

However, you will presumably still need to deal with the fact that your 
precompiled assets will be either all ssl or all non ssl - if you serve 
some css that references (eg via background-url) a non ssl asset then I'd 
expect you to run into mixed content warnings.

Fred

>   ngw
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/qxCa_pJP8ugJ.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to