还是先做个广告: http://hisea.me
如果想看这个 gem 的效果,可以用用移动设备的浏览器打开 hisea.me
mobile_rails 这个 gem 是用来把移动平台的一些 js 库跟 rails 3.1 的应用集成起来的一个工具。
另外,一起来的还有一个叫做 mobile_rails_jqm 的 gem,这个打包了 jQuery Mobile 1.0 final 外加一个可以生成 mobile_rails layout 的 generator.
第一步,安装 Gem
gem 'mobile_rails'
gem 'mobile_rails_jqm'
第二步,下列命令
$ bundle install
$ rails g mobile_rails:install
$ rails g mobile_rails_jqm:install
第三步,再 app/controller/application_controller.rb 中添加
has_mobile_rails
去掉 application.js 和 application.css 中的'require_tree .' 这样避免加载属于 jQuery Mobile 的文件。这样的缺点是你需要的文件可能要一个一个手动加。有更好的解决方案,具体可以参照这一个railscast. 我只介绍个笨办法,每个人的项目设置的不一样,怎么弄取决于你啦。
下面基本上就弄好了。 app/view/layout里面生成了一个layout文件mobile.mobile.haml。
controller 里面的 action 需要支持移动浏览的可以支持'respond_to :mobile'. 然后新建一个 action_name.mobile.haml 文件做为 view.具体做法就是基本的 rails 了,没什么高深的。
例如你想再移动版最下面添加一个连接 '显示网页版',可以这样:
再 view 中添加
= link_to "Web Version", home_web_url, :rel => "external"
home_controller 中添加:
def web
session[:mobile_session] = 0
redirect_to root_url
end
基本上就是这么简单。 如果有什么问题欢迎一起讨论。
目前还是早期,很多功能还不是很完善,测试也没有写。欢迎任何帮助或者意见。