2016-10-03 1 views
0

Was kann ich tun, wenn ich mehrere Instanzen derselben Rails Engine (Bot) hosten möchte? Dies wird separate Motoren sein (mit dem gleichen Code), aber unterschiedliche Modell-Attribute, Daten, etc ..Wie montiere ich mehrere Schienenmotoren?

Der einzige Weg, das macht Sinn für mich ist separaten Motor (Bots) zu tun, so etwas zu montieren ..

mount SomeENGINE, at: 'bot/:unique_id'

Ist dies der Weg, es zu tun? Grundsätzlich mit einem separaten Web-Hook pro Engine als eine Möglichkeit, sie zu identifizieren?

Antwort

1

Ja deine Idee wird grundsätzlich funktionieren. Hier ist ein Beispiel für die 10-malige Montage des Motors an 10 verschiedenen Routen:

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

Ist es möglich, dies dynamisch zu tun? Zum Beispiel basierend auf Modell-IDs? Auf diese Weise wird eine neue Engine montiert, wenn ein Modell erstellt wird? – echan00

+0

Ja, Sie sollten in der Lage sein. Laut der Dokumentation zu 'mount' (http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html#method-i-mount) akzeptiert es dieselben Optionen wie' match', was erlaubt Wildcard-Parameter. –

+0

Ich versuche so etwas, aber kein Glück -> mount MyEngine :: Engine, unter: 'bot', Pfad: 'bot /: id' – echan00