在写 RubyMotion 代码过程中,不止一次获取项目的绝对路径的需求,解决办法都是根据当前文件,向上递推,再根据相对路径获取。
这样做费时又费力,代码还略显难看, 比如这样:
# app/lib/xx.rb
File.expand_path("../../models", __FILE__)
出现这个问题原因就是 RubyMotion 没有存储项目的根路径。 写 Rails 项目的人都知道,要想拿到 Rails 项目的根路径是非常容易的,只需调用 APP_NAME.root 即可。
那是否 RubyMotion 也可以这样呢?
下面是我的一个 Hack 方式:
打开 Rakefile 文件, 添加如下代码 :
# Rakefile
# Hack way to store app root path
ENV['APP_ROOT'] = File.expand_path("../", __FILE__)
然后你在项目中就可以通过 ENV['APP_ROOT']
得到项目根路径了。
JUST A JOKE , HAVA A FUN.