如何在我的Rails项目的Rspec测试中获取gem的根目录?

时间:2011-03-31 20:54:32

标签: ruby-on-rails-3 gem

我有一个宝石,我们称之为ToastMitten,我将其包含在我的一个Rails应用程序中。我正在为ToastMitten编写一些我需要加载文件的测试,并且我想从gem的根目录指定路径。

我刚尝试使用Rails.root.to_s,但这给了我/Users/me/projects/toastmitten/spec/dummy之类的内容。我希望该路径以toastmitten/结束。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

Rails.root.parent.to_s

如果它总是返回您的虚拟Rails应用程序,只需向上移动到父级。

答案 1 :(得分:3)

看起来您正在使用Rails引擎(使用enginex生成,因此您的spec文件夹中的虚拟应用程序)。如果您需要使用绝对路径在测试中要求文件,则可以使用以下命令:

file = File.expand_path(File.join(File.dirname(__FILE__), 'path', 'to', 'file.ext'))

root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))

您可以更具体地了解您要求此文件的位置吗? 此外,根示例可能需要更多..