gpt4 book ai didi

ruby-on-rails - 有条件的用户代理检查需要变干

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:59 25 4
gpt4 key购买 nike

如果客户端在 ie7 上,我只是将这个条件写到不同的社交区域(barf);因为我们的两个社交网络不再正确支持 ie7 (pinterest/google plus)。

我想将用户代理检查从部分移出到更清晰、更易读的地方。我尝试将条件移动到名为 is_this_ie7 的方法?在助手和 Controller 中,两者都给我一个未定义的方法中断。

如果我是一名更有经验的 RoR 开发人员,这会去哪里?提前致谢!!!!

      <!-- if ie7 load seperate helper  since gplus dones't support -->
<% if request.env['HTTP_USER_AGENT'] =~ /msie 7.0/i %>
<%= share_area_for_bidding_ie7 %>
<% else %>
<!-- if any other browser load main share area -->
<%= share_area_for_bidding %>
<% end %>

最佳答案

通常在帮助程序中,如果你想灵活地处理 TDD,你可以为字符串和请求创建一个方法:

# ./app/helpers/application_helper.rb

def agent_ie7?(agent)
agent =~ /msie 7.0/i
end

def request_ie7?
agent_ie7?(request.env['HTTP_USER_AGENT'])
end

一个更强大的答案是对其建模:

# ./app/models/browser.rb

class Browser

def initialize(agent)
@agent = agent
end

def ie7?
@agent =~ /msie 7.0/i
end

end

一个很好的答案是使用一个现有的 gem 来提供你想要的东西:https://github.com/fnando/browser

 gem install browser
...
browser.ie7?

关于ruby-on-rails - 有条件的用户代理检查需要变干,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12666845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com