出现这个问题是因为单元格 gem 使用 File.join('app','cells') 指定模板目录。在您将 Rails 作为守护程序运行(脚本/服务器 -d)之前,它可以正常工作。守护程序将目录切换到 / ,这使单元格模板路径指向错误的绝对路径。
我的解决方案是将默认路径设置为 File.join(RAILS_ROOT, 'app', 'cells')。这在 Rails 中有效,但插件的单元测试失败,因为 RAILS_ROOT 未定义。使用File.join(File.dirname(__FILE__),'..'
... 也可以,但需要大约 6 个级别的“..”,这似乎是错误的。
所以我的问题是在 Rails 插件中指定“app”下目录路径的正确方法是什么?还是有其他错误会导致守护程序 Rails 无法找到相对路径?