【发布时间】:2015-02-27 04:11:21
【问题描述】:
如果不 cd-ing 进入我的 Rails 应用程序的根目录,我如何为该应用程序执行 Rails 或 Rake 命令。
我试过了:
bundle exec rake my_tasks:do_stuff BUNDLE_GEMFILE=/PATH/TO/RAILS_APP/Gemfile
在其他组合中,无济于事。
[更新]
问题实际上是双重的,bundle 不知道 gemfile 在哪里,而 rake 不知道要运行什么。
使用捆绑器:
BUNDLE_GEMFILE=/PATH/TO/RAILS_APP/Gemfile bundle exec ...
请注意,BUNDLE_GEMFILE 必须位于 'bundle exec' 之前。
使用 Rake:
rake -f /PATH/TO/RAILS_APP/Rakefile my_task:do_stuff
使用 Rails 控制台:
????
还没有弄清楚如何从另一个目录进入 Rails 控制台。看source,我觉得可能不太可能,因为它最终会通过 File.join('script','rails') 来启动 rails 进程。
【问题讨论】:
-
有several good answers here 但我认为最好的答案可能是你不应该这样做:-)。尽管可能,您最终会发现调用 rake 时引用的每条路径,甚至在被调用的 rake 任务中都会感到困惑,因为它们希望锚定到任务运行所在的目录。
-
好点,汤姆。正如比尔所说,这些任务必须与 CWD 无关。对于小任务,这应该不是问题。谢谢!
标签: ruby ruby-on-rails-3.1 rake bundler