2016-10-03 139 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