Ruby on rails 如何在Rails中引用相对路径?

Ruby on rails 如何在Rails中引用相对路径?,ruby-on-rails,Ruby On Rails,在我的控制器中,函数运行shell命令。我很难在commad中找到脚本。例如,在我的控制器中,我有: def查找应用程序 command='ruby usage.rb' #{command} 结束 我的问题是将usage.rb文件放在何处,以及如何在没有硬代码的情况下引用整个路径。当我将路径硬编码为/home/user/xyz/usage.rb时,它可以工作,但我认为这样做是不对的。您可以将其填充到/script中,然后在代码中引用RAILS\u ROOT/script/usage.rbRAIL

在我的控制器中,函数运行shell命令。我很难在commad中找到脚本。例如,在我的控制器中,我有: def查找应用程序 command='ruby usage.rb'
#{command}
结束


我的问题是将usage.rb文件放在何处,以及如何在没有硬代码的情况下引用整个路径。当我将路径硬编码为/home/user/xyz/usage.rb时,它可以工作,但我认为这样做是不对的。

您可以将其填充到/script中,然后在代码中引用
RAILS\u ROOT/script/usage.rb
RAILS\u ROOT
是一个常量,它包含应用程序的绝对路径。

您可以将其填充到/script中,然后在代码中引用
RAILS\u ROOT/script/usage.rb
RAILS\u ROOT
是一个常量,包含应用程序的绝对路径。

hmm。。。但我仍然必须指定绝对路径,这是我试图避免的。应用程序将部署到具有不同环境的不同计算机上。因此,硬代码路径似乎不太好。Rails在应用程序启动时为您设置Rails\u根。swingfuture-jdl是正确的。您正在使用变量RAILS\u ROOT,该变量在应用程序运行时自动设置,然后在RAILS 3中不推荐使用变量.RAILS\u ROOT的相对路径,而使用RAILS.roothmm。。。但我仍然必须指定绝对路径,这是我试图避免的。应用程序将部署到具有不同环境的不同计算机上。因此,硬代码路径似乎不太好。Rails在应用程序启动时为您设置Rails\u根。swingfuture-jdl是正确的。您使用的变量RAILS\u ROOT是在应用程序运行时自动设置的,然后在RAILS 3中,您的变量.RAILS\u ROOT的相对路径被弃用,取而代之的是RAILS.ROOT