我有一个宝石,我们称之为ToastMitten
,我将其包含在我的一个Rails应用程序中。我正在为ToastMitten
编写一些我需要加载文件的测试,并且我想从gem的根目录指定路径。
我刚尝试使用Rails.root.to_s
,但这给了我/Users/me/projects/toastmitten/spec/dummy
之类的内容。我希望该路径以toastmitten/
结束。
我做错了什么?
答案 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__), '..', '..'))
您可以更具体地了解您要求此文件的位置吗?
此外,根示例可能需要更多..
。