2012-06-09 60 views
1

我已經得到了一個gem,我修改了一些代碼,但是當我捆綁安裝或更新時,gem的更改不會反映在我的應用程序中。有沒有辦法確保在我的應用程序中捕獲和重新加載更改?謝謝。修改寶石,然後確保它重新加載?

回答

1

你應該從來沒有更新代碼直接在寶石。相反,從其中的一個選項(從首選較少優選)選擇:

  • 發送拉請求寶石維護者
  • 猴子在你的應用程序
  • 叉原寶石修補寶石和維護複製。

如果您需要任何幫助,這是另一個討論的主題,但請不要編輯gem本身的代碼。

1

確保您使用打開包來修改已安裝的gem。進行更改並保存,然後如果您的應用程序是本地應用程序並且以標準開發模式運行(無緩存),則更改將立即生效,最糟糕的情況是您可以重新啓動應用程序,並且它們將被拾取。如果沒有,您不會對您的應用正在使用的寶石進行更改。像這樣的變化將在捆綁安裝中倖存下來,因爲捆綁器將沒有理由更新您的寶石。但是,如果您運行軟件包更新並安裝了新版本的修改後的軟件,它將會消除您的更改。一個好方法是在github上分割原始gem,進行更改,並將你的應用程序指向github上的分叉副本。然後,即使在部署應用程序時,它也會找到並安裝修改後的代碼。另外,如果更改對每個人都有用,請向原始項目提出拉取請求。