【发布时间】:2015-11-08 15:01:26
【问题描述】:
是否有任何明显的命令(可能是 rails 命令、rake 命令或其他命令)可用于从 shell 脚本中获取到 rails 项目根目录的路径?
上下文:
我正在编写一个 shell 脚本。我将从 rails 项目中的任意目录执行该脚本,该脚本需要确定 rails 项目根目录的绝对路径。
例如,如果脚本是
#!/bin/bash
rails_root=# get the root somehow...
鉴于我的项目的根目录是
/home/myuser/projects/myrailsapp
那么我应该可以把那个脚本放进去
/home/myuser/projects/myrailsapp/scripts/myscript
并从项目的其他地方调用它
cd /home/myuser/projects/myrailsapp/app/assets
../../scripts/myscript
并且脚本应该能够知道根目录的路径。
我想出了两种不同的方法来解决这个问题:
#!/bin/bash
rails_root=$(rake about | grep 'Application root' | sed 's/Application root[ ]*//')
#!/bin/bash
rails_root=$(rails c <<-EORUBY | grep ^rails_root_is | sed 's/rails_root_is//'
puts "rails_root_is#{Rails.root}"
EORUBY
)
但我觉得应该有一个更明显的方法来做到这一点。我期待使用现有的命令。
【问题讨论】:
-
为什么不创建 rake 任务而不是 shell 脚本?
-
@max 感谢您的建议。我从来没有写过 rake 任务,所以没有想到它,但是是的,也许这更适合我。
标签: ruby-on-rails shell rake rails-console