我的Rails應用程序(編譯Rails 3和4)都有自己的數據庫(自然),但也可以訪問第三方數據庫。因此,他們有模型到這個第三方數據庫。我想讓這些模型可以重複使用,而不是將它們複製粘貼到每個應用程序中。沒有控制者,幫手或路線要考慮;只有型號。但由於它具有Rails的「部分」,這似乎表明我需要一個引擎。但是,我希望在所有應用中使用這些模型,這似乎意味着只需要一個「常規」導軌兼容的寶石。「常規」Ruby寶石或Rails引擎?
將它作爲寶石還是Rails引擎會更好嗎?
如果發動機更好,我不太確定從哪裏開始。從我讀過的一些指南看來,您似乎在新的Rails應用程序上創建引擎。我也有點不清楚full
與mountable
,但我知道我希望這些模型在他們自己的命名空間中。
最後,我希望這些模型可以在我所有的應用程序中使用。發動機可以將打包成寶石,對嗎?如果是這樣,那麼我不能以一個寶石開始,而應該從一個特定的應用程序中作爲引擎開始,然後在事實之後導出寶石?
我很困惑,所以任何反饋意見。我以前從來沒有建造過寶石,也沒有引擎,所以請原諒這方面的愚蠢。
爲什麼除了模型以外沒有其他任何東西表明您需要引擎?無論如何,哪個「更好」取決於,其餘的非常寬泛。從http://edgeguides.rubyonrails.org/engines.html開始並提出非常具體的問題可能有意義嗎? –
@DaveNewton:對不起,我的意思是因爲它有*任何* Rails的「部分」,它似乎(對我來說)它應該是一個引擎。 – istrasci
也許,雖然我不確定那是爲什麼。如果它是一個Gem,你也可以在Rails之外使用它(例如命令行util等),所以我傾向於這樣做。 –