2016-10-03 137 views
0

如果我希望能够托管同一个rails引擎(bot)的多个实例,该怎么办?这将是独立的发动机(使用相同的代码),但使用不同的模型属性,数据等。如何安装多个导轨引擎?

这对我来说很有意义的唯一方法是安装独立的发动机(机器人)做这样的事情..

mount SomeENGINE, at: 'bot/:unique_id'

是这样做的吗?基本上每个引擎都有独立的Web钩子来识别每个引擎?

回答

1

是的,你的想法基本上可行。下面是在10种不同路线上安装10次发动机的示例:

Rails.application.routes.draw do 
    (1..10).each do |idx| 
    mount MyEngine::Engine => "/bot_#{idx}" 
    end 
end 
+0

是否可以动态地实现这一点?例如基于模型ID?这样一个新的引擎在模型创建时被挂载? – echan00

+0

是的,你应该可以。根据有关'mount'的文档(http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html#method-i-mount),它接受与“match”相同的选项,通配符参数。 –

+0

我正在尝试这样但没有运气 - >挂载MyEngine :: Engine,在:'bot',路径:'bot /:id' – echan00