Tag: 轨道发动机

如何在可重新加载开发环境的情况下将可安装引擎的模型扩展到另一个可安装引擎中

使用Rails 3.2.2和Ruby 1.9.2。 我有一个rails可安装引擎EngineA ,它声明一个inheritanceActiveRecord::Baseforms的User类。 我有另一个引擎EngineB想要向EngineA::User注入function。 现在我所做的如下所示: 方法1: #EngineA app/models/engine_a/user.rb module EngineA class User < ActiveRecord::Base has_attached_file :avatar has_many :somethings end end #EngineB lib/engine_b/user.rb module EngineB module User def self.extended obj obj.class_eval do has_many :something_elses end end end end EngineA::User.extend EngineB::User 这给了我一个uninitialized constant EngineA::User错误。 即使我需要特定文件,我EngineA需要回形针的问题,以便了解has_attached_file 。 当我意识到我必须知道并要求EngineA内的EngineB的依赖关系时,这条道路就结束了。 方法2: 我使用了与之前相同的代码,只是我从EngineB user.rb文件中删除了最后一行EngineA::User.extend EngineB::User 。 然后我将该调用移动到EngineB内的初始化EngineB 。 #EngineB […]

没有路线匹配…… Rails引擎

所以我一直收到错误: No route matches {:action=>”create”, :controller=>”xaaron/api_keys”} 测试中抛出了哪些内容: it “should not create an api key for those not logged in” do post :create expect(response).to redirect_to xaaron.login_path end 当我去spec/dummy并运行rake routes命令时,我看到: api_keys GET /api_keys(.:format) xaaron/api_keys#index POST /api_keys(.:format) xaaron/api_keys#create new_api_key GET /api_keys/new(.:format) xaaron/api_keys#new edit_api_key GET /api_keys/:id/edit(.:format) xaaron/api_keys#edit api_key GET /api_keys/:id(.:format) xaaron/api_keys#show PATCH /api_keys/:id(.:format) xaaron/api_keys#update PUT /api_keys/:id(.:format) xaaron/api_keys#update DELETE /api_keys/:id(.:format) […]

Rails引擎扩展function

我有一个引擎定义了一些模型和控制器。 我希望能够在我的应用程序中扩展某些模型/控制器的function(例如添加方法),而不会从引擎中丢失原始模型/控制器function。 在我读到的任何地方,您只需要在应用程序中定义具有相同名称的控制器,Rails将自动合并它们,但它对我不起作用,引擎中的控制器被简单地忽略(我不认为它甚至被加载)。