我安装了rack-user_agent gem
并编辑了application_controller
,如下所示,但无效。我的是rails4。
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :detect_mobile
private
def detect_mobile
case request.user_agent
when /mobile/i
request.variant = :mobile
end
end
end
app&gt;意见&gt;页面&gt; home.html.erb&amp; mobile.html.erb
有谁知道如何解决这个问题?或者有人知道更好的方法来建议吗?
答案 0 :(得分:0)
如果内容几乎与网络和移动视图相同,那么你必须使用相同的HTML代码才能使用css @media screen
如果您只想在移动视图下显示特定文件,那么您可以使用rack-user_agent gem
在application_helper.rb
中创建一个帮助器def is_mobile?
request.from_smartphone?
end
并在需要仅在移动设备上呈现文件的视图中使用此帮助程序,如:
<%=
if is_mobile?
render "mobile_file"
end
%>
如果您有两个不同的移动设备和网络视图,并且您希望控制器根据变体返回视图 那么你可以使用像
class YourController < ApplicationController
def your_method
#your code
if view_context.is_mobile?
render "mobile_view"
else
render "web_view"
end
end
end
答案 1 :(得分:0)