Tôi đã cài đặt Devise và bây giờ muốn xóa nó, bao gồm tất cả các tệp mà nó đã tạo. Làm thế nào để làm điều đó?Ruby: cách gỡ cài đặt Devise?
Trả lời
Tôi nhìn vào giải quyết cùng một vấn đề ngày hôm nay và vì đây là không trả lời, cho nó một đi =)
Models
lập mưu tạo ra một mô hình User
nếu bạn cài đặt theo mặc định. Xóa các dòng bên dưới devise
. Đây là cách tôi trông như thế nào.
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
Trong attr_accessible
, bạn có thể loại bỏ email
, :password
, password_confirmation
và remember_me
nếu bạn không còn cần đến chúng.
Lần
Một mặc định lập mưu cài đặt không tạo ra quan điểm trong thư mục app
của bạn. Nếu bạn tạo lượt xem ghi đè cho Devise, bạn có thể xóa chúng bằng cách chạy rails destroy devise:views
(Rails 3).
Nói chung, tất cả các chế độ xem được lưu trữ trong app/views/devise
.
Controller
Theo mặc định, lập mưu không tạo ra bất kỳ điều khiển quá. Nếu bạn đã thực hiện bất kỳ phần ghi đè nào, chúng có nhiều khả năng được gọi là registrations_controller
. Tìm kiếm dự án của bạn cho các trình điều khiển kế thừa lớp học Devise::RegistrationsController
.
Ngoài ra, nếu bạn đã theo dõi Devise's wiki và monkey-ed xung quanh để thêm các phương thức chuyển hướng, hãy tìm các phương thức như after_sign_in_path_for
, store_location
v.v ... để chuyển hướng người dùng.
Migrations
Nếu bạn cài đặt lập mưu thông qua máy phát điện của nó, tìm cho ra một sự chuyển đổi create_users
. Nếu bạn không cần nó nữa, hãy sử dụng drop_table :users
trong quá trình di chuyển để loại bỏ nó.
Tôi sẽ giả định hầu hết mọi người muốn giữ mô hình Người dùng của họ. Nếu bạn đang sử dụng Devise < 2.0, việc di chuyển được thực hiện bởi người trợ giúp. Khi bạn xóa Devise khỏi Gemfile
, Rails sẽ không hiểu những người trợ giúp bên dưới và ném lỗi, ví dụ: khi bạn đang cố gắng chạy lại các di chuyển này trên một hộp khác. Những người trợ giúp này là:
t.database_authenticatable
t.recoverable
t.rememberable
t.trackable
t.encryptable
t.confirmable
t.lockable
t.token_authenticatable # => becomes t.string :authentication_token
Đối với các cột chính xác, dưới đây là tham chiếu đến các cột được tạo bởi Devise.
https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style
Hướng dẫn ở trên liệt kê các lĩnh vực được tạo ra bởi lập mưu sử dụng người giúp đỡ. Bạn sẽ có thể xem qua danh sách và mô hình của mình (ví dụ: gọi User
trong bảng điều khiển), tạo di chuyển xóa các cột đó.
NHƯNG ...
Đó là một chút không may cho sự nhất quán, chúng tôi phải chuyển đổi di chuyển để không sử dụng người trợ giúp bằng cách sử dụng hướng dẫn ở trên sau đó tạo ra một di chuyển để loại bỏ chúng. Điều này là dành cho tính nhất quán trong lịch sử di chuyển, nếu không thì bất kỳ ai chạy di chuyển có thể cố gọi những người trợ giúp không tồn tại. Ngoài ra, di chuyển của bạn để loại bỏ các trường cũng sẽ mong đợi các trường có mặt.
Ngoài ra, đây có thể là thời điểm tốt để loại bỏ các di chuyển và dựa trên schema.rb
/structure.sql
cho trạng thái cập nhật của lược đồ. Ngay cả sau khi xóa di chuyển, bạn luôn có thể tạo lại phát triển DB bất cứ lúc nào bằng cách sử dụng rake db:schema:load
.
Initializers và Locale
Di devise.rb
trong config/initializers
và devise.en.yml
trong config/locales
.
đường
Hủy bỏ bất kỳ devise_for
dòng. Chúng sẽ gây ra lỗi sau khi loại bỏ đá quý.
Gem tập
Yaay. Tất cả các mái vòm, loại bỏ các dòng gem 'devise'
từ gemfile của bạn.
Rõ ràng và được viết tốt, cảm ơn bạn! – lambinator
Cảm ơn lời khen =) –
Điều duy nhất tôi không đồng ý là xóa các trường khỏi di chuyển ban đầu.Di chuyển tồn tại như một loại điều khiển phiên bản của cơ sở dữ liệu của bạn, bạn có thể chạy hoặc quay lại. Bởi vì điều này, tôi nghĩ tốt hơn là tạo một di chuyển khác trong đó bạn loại bỏ các trường này khỏi mô hình. – nunopolonia
Trong trường hợp của tôi, tôi có hai mô hình Người dùng và Quản trị viên và tôi đang gắn bó với Devise, nhưng tôi đã gặp phải sự cố về tên va chạm với ActiveAdmin yêu cầu tôi xóa mô hình Quản trị. Nhưng vì có quá nhiều tham chiếu đến Admin trong việc đưa ra, tôi phải thực hiện các bước bên dưới. Tôi nghĩ rằng nó trả lời câu hỏi ban đầu ở trên là tốt, mặc dù. Tôi tin rằng cách chính xác để thực hiện việc này là:
1.Tìm sự di chuyển cho mô hình người dùng và cuộn lại [QUAN TRỌNG: NẾU BẠN KHÔNG MUỐN loại bỏ bảng người dùng được liên kết với Devise, thì hãy M SKO NÀY BƯỚC]:
rake db:rollback VERSION=<insert the version number of the migration>
dụ: rake db:rollback VERSION:20110430031806
2.Run lệnh này để loại bỏ lập mưu và các tập tin liên quan. rails destroy devise Admin
(nếu Quản trị là tên của mô hình có tài khoản người dùng).
này tạo ra sản lượng này:
invoke active_record
remove db/migrate/20110430031806_devise_create_admins.rb
remove app/models/admin.rb
invoke test_unit
remove test/unit/admin_test.rb
remove test/fixtures/admins.yml
route devise_for :admins
3.To hoàn toàn loại bỏ lập mưu, bạn cần phải loại bỏ tất cả các tham chiếu đến nó trong các mô hình, điều khiển và quan điểm của bạn. Đây là công việc thủ công. Câu trả lời ở trên cung cấp chi tiết tốt cho việc tìm kiếm tàu tuần dương này, nhưng không đầy đủ cho mục đích của tôi. Tôi mong điều này giúp được người nào khác.
Tôi tìm thấy câu trả lời của daemon là rất hữu ích. Dưới đây là một vài điều khác để xem xét khi bạn làm điều này.
Thay lập mưu
- Nếu bạn đang đi để thay thế lập mưu với xác thực của riêng bạn, tôi khuyên bạn nên railscast này: Authentication from Scratch (revised) (yêu cầu đăng ký, nhưng đó là $ 9/tháng tốt nhất mà bạn có thể chi tiêu).
- Và railscast này (không yêu cầu đăng ký) có thể giúp với một liên kết mật khẩu quên và "nhớ đến tôi" tùy chọn (điều Vạch Mời ra khỏi hộp, nhưng mà bạn có thể xây dựng khá dễ dàng cho mình): Remember Me & Reset Password
Kiểm tra
- Trước khi bạn thực hiện việc này, tôi khuyên bạn nên chạy tất cả các thử nghiệm để đảm bảo chúng vượt qua.
- Sau khi bạn xóa Devise, các kiểm tra phụ thuộc vào xác thực của bạn có thể sẽ không thành công, vì vậy hãy dành một chút thời gian để sửa các lỗi kiểm tra. Đây là một điều tốt vì nó sẽ giúp bạn xem những thứ "phá vỡ" khi bạn loại bỏ Devise.
- Đảm bảo bạn cũng kiểm tra người trợ giúp thử nghiệm của mình. Hầu hết những người trợ giúp của tôi đều nằm trong /spec/spec_helper.rb. Trong thực tế, hầu hết các thử nghiệm thất bại của tôi đã bắt đầu chuyển một khi tôi cập nhật các phương thức trong spec_helper.rb (ví dụ, "login_user").
Sử dụng máy phát điện để gỡ bỏ những file cấu hình cũng như (bước 2), do đó toàn bộ quá trình sẽ được (tham khảo câu trả lời trước):
- Di bảng:
rake db:rollback VERSION=<insert the version number of the migration>
- Tháo cấu hình:
rails destroy devise:install
- Xóa mô hình người dùng của bạn:
rails destroy devise User
(thay thế 'Người dùng' bằng tên của mô hình của bạn) - Xóa tham chiếu để đặt ra trong tuyến đường của bạn.rb, gemfile, control ler file, và xem các tệp như sau, nếu bạn sử dụng chúng (một lần nữa thay thế 'sử dụng' bằng tên mô hình của bạn):
- devise_for (routes.rb)
- đá quý 'đưa ra' (gemfile)
- before_action: authenticate_user! (bộ điều khiển)
- user_signed_in? (bộ điều khiển, lượt xem)
- CURRENT_USER (bộ điều khiển, lượt xem)
- user_session (bộ điều khiển, quan điểm)
- 1. Làm cách nào để gỡ cài đặt Ruby trên ubuntu?
- 2. Làm cách nào để gỡ cài đặt Ruby on Rails và thực hiện cài đặt sạch?
- 3. Cách gỡ cài đặt GVM
- 4. Cách giữ cài đặt người dùng khi gỡ cài đặt
- 5. Ruby on Rails + Devise + I18n: cách đặt ngôn ngữ?
- 6. Gỡ cài đặt MacRuby
- 7. Gỡ cài đặt mongo
- 8. RVM cài đặt: cài đặt ruby lỗi
- 9. Homebrew được lắp đặt nửa chừng. Không thể cài đặt lại hoặc gỡ cài đặt - Tôi có thể gỡ cài đặt theo cách thủ công bằng cách nào?
- 10. Cách gỡ cài đặt IE Addon
- 11. Cách gỡ cài đặt pycharm và rubymine?
- 12. Làm cách nào để gỡ cài đặt ruby trên đường ray hoàn toàn trên Windows (được cài đặt bằng RailsInstaller)?
- 13. Gỡ cài đặt ReSharper 4.5
- 14. gỡ cài đặt đá quý sass
- 15. gỡ cài đặt plugin VSTO
- 16. cài đặt/gỡ cài đặt Dịch vụ Windows
- 17. Gỡ cài đặt nginx được cài đặt bởi Hành khách
- 18. Gỡ cài đặt Burn WIX?
- 19. Làm cách nào để gỡ cài đặt ứng dụng Ruby on Rails?
- 20. Làm cách nào để gỡ cài đặt ruby và đá quý bằng RVM?
- 21. Làm cách nào để gỡ cài đặt Ruby khỏi/usr/local?
- 22. Android: BroadcastReceiver khi cài đặt/gỡ cài đặt ứng dụng
- 23. Rails 3/Devise xác nhận cài đặt máy chủ email
- 24. Python cài đặt gỡ bỏ cài đặt easy_install
- 25. Gỡ cài đặt Xcode 4.2.1 sau khi cài đặt 4.3.1
- 26. Wix CopyFile trước khi gỡ cài đặt và khôi phục sau khi gỡ cài đặt
- 27. Cài đặt devkit cho pik-ruby cài đặt
- 28. Hãy cài đặt và cài đặt lại libyaml ruby
- 29. Làm cách nào để thêm mô-đun 'thời gian chờ' của Devise vào cài đặt Devise hiện có? - Rails 3.1
- 30. Gặp sự cố khi gỡ cài đặt RVM
Tôi tin rằng bạn cần phải chạy một máy phát điện cho lập mưu để tạo ra bất kỳ tập tin trong thư mục của bạn để bắt đầu. Do đó bạn sẽ có thể chạy ví dụ: 'rails destroy devise: views'. Bạn đã thử nó chưa? – polarblau
Tôi biết rằng tôi nên phân nhánh nó trong git –