Rob Biedenharn wrote:
> On Feb 8, 2010, at 2:13 PM, Aldric Giacomoni wrote:
>>> @request.env['HTTP_USER_AGENT'].downcase.index('msie 7.0')!=nil %>
>>> nil:NilClass)
>>>
>>> how can i edit this code so that it can handle an empty user agent
>>> string?
>>>
>>
>> Ah, I see. You want 'nil' .. So you should first say that :
>> if @request.env['HTTP_USER_AGENT'].nil?
>> .. And then whatever you want to do.
>
> Start with something like:
>
> user_agent = @request.env.fetch('HTTP_USER_AGENT', 'empty').downcase
>
> Then replace all the other tests:
>
> if user_agent.index('msie 6.0')
>
> There's no need to say !=nil
>
> (but I agree that you should get the logic out of the view if
> possible. Perhaps in a helper?
>
> def user_agent
> @request.env.fetch('HTTP_USER_AGENT', 'empty').downcase
> end
>
> def browser_specific_stylesheet
> case user_agent
> when /msie 6.0/
> 'ie6'
> when /msie 7.0/
> 'ie7'
> else
> 'moz'
> end
> end
>
> <%= stylesheet_tag browser_specific_stylesheet %>
>
> -Rob
>
> Rob Biedenharn http://agileconsultingllc.com
> [email protected]
thanks for all the replies! i got a check to work for all cases:
<% if [email protected]['HTTP_USER_AGENT'].nil?
if
@request.env['HTTP_USER_AGENT'].downcase.index('msie 6.0')!=nil %>
<%= stylesheet_link_tag 'ie6' %>
<% elsif
@request.env['HTTP_USER_AGENT'].downcase.index('msie 7.0')!=nil %>
<%= stylesheet_link_tag 'ie7' %>
<% else %>
<%= stylesheet_link_tag 'moz' %>
<% end %>
<% end %>
not the prettiest code, but its working and no more error
thanks again
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.