【发布时间】:2015-03-22 16:11:47
【问题描述】:
我正在尝试为移动设备创建视图。我找到了别人的代码,这是在ApplicationController:
def check_for_mobile
session[:mobile_override] = params[:mobile] if params[:mobile]
prepare_for_mobile if mobile_device?
end
def prepare_for_mobile
prepend_view_path Rails.root + 'app' + 'views_mobile'
end
def mobile_device?
if session[:mobile_override]
session[:mobile_override] == "1"
session[:is_mobile] = nil
else
(request.user_agent =~ /(iPhone|iPod|Android|webOS|Mobile|iPad)/)
session[:is_mobile] = true
end
end
helper_method :mobile_device?
代码无法正确区分桌面设备和移动设备。当我运行此代码时,即使我在笔记本电脑上使用该应用程序,也会为移动设备生成视图。这是为什么呢?
我不明白方法check_for_mobile的定义。 params[:mobile] 来自哪里?
【问题讨论】:
-
对于 Rails 4,您应该使用变体,即支持移动视图的构建。详情在这里:guides.rubyonrails.org/…
-
克里斯蒂安,谢谢你,我遵循了这种方法,它就像一个魅力!请随时添加它作为答案,我会接受它。
-
我添加了变体作为答案。
标签: ruby-on-rails ruby ruby-on-rails-4 mobile view