2011-03-09 63 views
39

我在我的Rails應用程序(devise)上安裝了一個gem。在我安裝了寶石後,我意識到我不需要它。如何從Ruby on Rails應用程序中刪除gem?

我想刪除它在應用程序上創建的gem及其依賴項和文件。換句話說,我希望將系統恢復到之前的狀態。我怎樣才能做到這一點? (我正在使用Ruby on Rails 3.)

回答

16

設計使用一些生成器來生成視圖並將其需要的內容填充到應用程序中如果你運行這個生成器,可以方便地與

rails destroy <name_of_generator> 

撤消創業板的卸載工作在其他職位描述。

34

如果您使用的是Rails 3,將其從Gemfile中刪除並運行bundle install就足夠了。

如果您使用Rails 2,希望您已將聲明放在config/environment.rb中。如果是這樣,從那裏刪除它並運行耙寶石:安裝應該做的伎倆。

+0

這是否也會刪除創建的文件? – 2011-03-09 18:29:39

+0

它通常不會添加任何文件,除非您明確指定,但它可能會修改一些現有文件,如routes.rb。 如果你想回滾這些修改,你可以通過源代碼控制恢復,就像@harald所說的那樣。 – 2011-03-09 18:33:41

+0

這會刪除所有的發電機嗎? – JohnMerlino 2014-08-10 03:09:05

-2

您正在使用某種版本控制,對吧?然後,在添加gem之前恢復提交應該非常簡單,或者如果在希望保留之後進行多次修改,則還原添加該提交的那個。

+0

我正在使用git。有沒有辦法用git恢復我的應用程序? – 2011-03-09 18:38:57

+0

是的,根據您的情況查找'git revert'或'git reset',其中一個應該可以幫助您。 – harald 2011-03-09 21:09:06

+1

這顯然不是正確的答案。使用git或更一般的VCS刪除已安裝的gem或庫是非常糟糕的。建議@rtfminc更好地使用'gem-uninstall ',或者只需從'Gemfile'中刪除依賴關係,然後像@ srdjan-pejic建議的那樣在應用中運行'bundle install'。 – 2015-10-12 11:54:37

1

如何像:

gem dependency devise --pipe | cut -d \ -f 1 | xargs gem uninstall -a 

(假定你不使用捆綁 - 但我想你是不是因爲從你的包gemspec刪除就可以解決這個問題)

75

您可以使用

gem uninstall <gem-name>

+0

這個爲什麼有這麼多upvotes?問題是如何從** RoR **應用程序中刪除它。爲此,你只需要再次從'Gemfile.rb'和'bundle'中移除它。就這樣。而爲了移除依賴關係,你必須刪除關聯的文件和依賴關係。 – Sachin 2017-09-29 06:26:31

+0

對於新的Rails應用程序,我們可以藉助'irb'來保存您的系統並在基於虛擬ruby版本的環境中工作。 – Sachin 2017-09-29 06:28:49

3

對於Rails開發4 - 從Gemfile取出寶石的名稱,然後在終端中運行bundle install。之後重新啓動服務器。