我遇到了将Rails 3应用程序部署到运行Ubuntu 11.10的Passenger / Apache2 / RVM服务器的问题。
我收到了错误:
缺少应用程序所需的源文件。
...
错误消息:无法加载此类文件 - 目标
异常类:LoadError
目标是我的Rails模型之一。
我见过很多人都有类似的错误消息,但他们的问题似乎与缺少捆绑/宝石有关 - 而不是模型文件!通过确保正确设置权限来解决他们的问题,所以为此我得到了:
Apache作为www-data运行,与Passenger一样。 RVM安装为www-data,我已将整个Web应用程序目录列入www-data。
我一直在努力解决这个问题,而且我真的没有想法 - 如果有人有任何建议我会非常感激!
答案 0 :(得分:1)
您可能错误地使用Rails应用程序的文件结构。您确定{your_app_root_url} / app / models /中有“goal.rb”文件吗?
对我来说,如果我在浏览器中查看应用程序时看到错误,那么您的rails应用程序和乘客(使用apache2)似乎正常工作。另一种可能性是你可能正在查看错误的app文件夹,其中设置了乘客。
很难说出错了什么。请提供有关如何使用rails app目录设置乘客的更多详细信息。如果您可以显示应用程序内部的内容(应用程序结构)以及goal.rb模型文件中的内容,也会有所帮助。
答案 1 :(得分:0)
我已经解决了。事实证明,在完全不相关的模型中解决yaml编码模型档案(即明确要求目标)的问题导致错误出现。看起来它只是在生产中占据主导地位 - 可能是由于开发与生产中使用的类加载器之间存在差异。
很难找到...堆栈跟踪没有包含对实际问题所在位置的引用!