12

Tôi có một ứng dụng trong Rails 3.2 đã sẵn sàng để triển khai. Tôi tự hỏi tôi nên nâng cấp nó lên Rails 4 hay không. Tôi cũng không chắc chắn về đá quý nào có thể đưa ra các vấn đề trong khi nâng cấp.Nâng cấp từ Rails 3.2 lên Rails 4

Dưới đây là Gemfile của tôi với một số đá quý phổ biến.

Gemfile.rb

source 'https://rubygems.org' 

gem 'rails', '3.2.8' 
gem 'pg', '0.12.2' 

gem 'bcrypt-ruby', '3.0.1' 

gem 'will_paginate', '3.0.3' 
gem 'bootstrap-will_paginate', '0.0.6' 
gem 'simple_form', '2.0' 
gem 'rails3-jquery-autocomplete', '1.0.10' 
gem 'show_for', '0.1' 
gem 'paperclip', '3.3.1' 
gem 'cocoon', '1.1.1' 
gem 'google_visualr', '2.1.0' 
gem 'axlsx', '1.3.4' 
gem 'acts_as_xlsx', '1.0.6' 
gem 'devise' ,'2.1.2' 
gem 'cancan', '1.6.8' 
gem 'bootstrap-datepicker-rails', "0.6.32" 
gem 'country_select', '1.1.3' 
gem 'jquery-rails', '2.1.4' 
gem 'annotate', '2.5.0', group: :development 
gem 'ransack', '0.7.2' 
gem "audited-activerecord", "3.0.0" 
gem 'prawn', '1.0.0.rc2' 
gem 'exception_notification', '3.0.1' 
gem 'daemons', '1.1.9' 
gem 'delayed_job_active_record', '0.4.3' 
gem "delayed_job_web", '1.1.2' 
gem "less-rails" 
gem "therubyracer" 
gem 'twitter-bootstrap-rails', '~>2.1.9' 
gem "spreadsheet", "~> 0.8.8" 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2' 

    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '1.2.3' 
end 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# To use Jbuilder templates for JSON 
# gem 'jbuilder' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'debugger' 

group :development, :test do 
    gem 'rspec-rails', '2.11.0' 
end 

group :test do 
    gem 'capybara', '1.1.2' 
    gem 'factory_girl_rails', '4.1.0' 
    gem 'faker', '1.0.1' 
end 

tôi bắt đầu làm việc trên ứng dụng này năm ngoái (tháng 11 năm 2012) sau khi đọc cuốn sách tuyệt vời này tại http://ruby.railstutorial.org/. Tôi cũng đã kiểm tra những gì mới trong Rails 4 như các thông số mạnh mẽ và tất cả đều rất hấp dẫn để thử nâng cấp.

Nhưng tôi lo ngại về khả năng tương thích của các loại đá quý và nỗ lực này có thể mất.

Tôi cần một số lời khuyên từ những người có kinh nghiệm trong cộng đồng hoặc ai đó đã thử nâng cấp trước khi tôi tiếp tục.

Trả lời

28

Tôi đã tải gemfile của bạn lên Ready for Rails 4 và có vẻ như bạn chỉ có một vài đá quý chưa sẵn sàng và một đá quý không xác định. Đối với một số đá quý được liệt kê mà không có ghi chú, tôi sẽ đề nghị kiểm tra trang GitHub của họ (nếu họ có), và xem đá quý đã được cập nhật gần đây trên rubygems, chỉ để xác nhận xem đá quý có hoạt động hay không.

4

Đường ống nội dung đã thay đổi một chút, vì vậy bạn cần phải nâng cấp những viên đá quý đó. Tôi đã phải sử dụng một ngã ba của ransack trong bối cảnh active_admin, nhưng bạn có thể được sử dụng tốt.

Tôi khuyên bạn nên tạo chi nhánh, chạm tới Rails 4 và xem điều gì sẽ xảy ra. Tôi mất một hoặc hai ngày để nâng cấp từ 3,2 lên 4 vài tuần trước trên một ứng dụng khá nhỏ (nhưng sản xuất với khách hàng). Các upgrade guide là khá vững chắc.

8

Sổ tay ngắn này đáng giá mỗi xu trong lần di chuyển 3.2 đến 4 gần đây của chúng tôi.

https://leanpub.com/upgradetorails4

https://github.com/alindeman/upgradingtorails4

Nó liệt kê chi tiết làm thế nào để xử lý nâng cấp đá quý, cũng như chi tiết cá nhân (với ví dụ rõ ràng) về những gì đã thay đổi và làm thế nào để quản lý ứng dụng Rails hiện tại của bạn thông qua việc nâng cấp.

Để giải quyết các mối quan tâm về đá quý của bạn: Hầu như tất cả 40 đá quý của chúng tôi, ngoại trừ có lẽ 5, đã hoạt động hoặc phiên bản Rails 4 (hoặc nhánh Github cho Rails 4) hoặc làm việc tốt với Rails 4 khi còn nguyên vẹn.

Có bộ kiểm tra đơn vị/chức năng lành mạnh trong cơ sở mã của bạn sẽ là yếu tố sống còn để bạn tự tin khi nâng cấp thành công.

+0

Liên kết này sẽ chuyển đến trang trại liên kết ngay bây giờ! – tronmcp

+0

Ah. Cuốn sách gần đây đã được mở nguồn. Đã thay đổi liên kết trong câu trả lời để trỏ đến nguồn mới và repo Github. – changingrainbows