vit*_*tus 1 rails-engines ruby-on-rails-3
我希望能够在基本应用程序中覆盖我的 rails 3 引擎的模型和控制器。
检查 $LOAD_PATH,我在那里找到了引擎的 'app/{models,controllers}',但我不能明确要求引擎的模型或控制器文件: require 'engine_name/model_name' 失败并显示“没有这样的文件”(尝试使用两个命名空间( app/controllers/enginename/*) 和普通引擎)。
那么,在 Rails 3 中扩展引擎模型/控制器而不将它们复制到基础应用程序的最佳方法是什么?
基本上,这是一个加载顺序问题。所以,如果我明确要求引擎的模型,一切都好,但我希望有更好的方法。
所以我实际上回去写了文档。答案是使用以下任一方法打开控制器和模型类,
更多详细信息, http://guides.rubyonrails.org/engines.html#overriding-models-and-controllers
(已编辑。从“edgeguides”子域更改为“guides”子域)