====== Rails and Ruby upgrade ====== ===== Current Version ===== Rails: 2.3.5 Ruby: 1.8.7 ===== Upgrade Path ===== 1) Upgrade rails to 2.3.18 i.e. the latest version of Rails 2 keeping the same ruby version (i.e. 1.8.7). - Done. There is a tag named trunk_rails-2.3.18 that contains this upgrade. 2) Using the upgraded rails app, upgrade the ruby version to ruby 1.9.3 (specifically Ruby 1.9.3-p547). - In progress. The branch trunk_rails3 had the in progress changes. ===== Softwares required ===== ruby - Ruby 1.9.3-p547 rubygems - 1.8.29 passenger - Needs to be compiled with ruby 1.9.3 The remaining softwares like memcached, node etc... will not change. ====== Check given by the rails_upgrade plugin ====== Known broken plugins At least one plugin in your app is broken (according to the wiki). Most of project maintainers are rapidly working towards compatibility, but do be aware you may encounter issues. More information: http://wiki.rubyonrails.org/rails/version3/plugins_and_gems The culprits: - authlogic Deprecated test_help path You now must require 'rails/test_help' not just 'test_help'. More information: http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices The culprits: - test/test_helper.rb Deprecated filter_parameter_logging calls The list of filtered parameters are now stored in /config/application.rb. For example: config.filter_parameters += [:password] More information: http://asciicasts.com/episodes/224-controllers-in-rails-3 The culprits: - app/controllers/api/authentication/base_controller.rb - app/controllers/application_controller.rb New file needed: config/application.rb You need to add a config/application.rb. More information: http://omgbloglol.com/post/353978923/the-path-to-rails-3-approaching-the-upgrade The culprits: - config/application.rb Old environment.rb environment.rb doesn't do what it used to; you'll need to move some of that into application.rb. More information: http://omgbloglol.com/post/353978923/the-path-to-rails-3-approaching-the-upgrade The culprits: - config/environment.rb Deprecated ERb helper calls Block helpers that use concat (e.g., form_for) should use <%= instead of <%. The current form will continue to work for now, but you will get deprecation warnings since this form will go away in the future. More information: http://weblog.rubyonrails.org/ The culprits: - app/views/homepage_features/new.html.erb Deprecated constant(s) Constants like RAILS_ENV, RAILS_ROOT, and RAILS_DEFAULT_LOGGER are now deprecated. More information: http://litanyagainstfear.com/blog/2010/02/03/the-rails-module/ The culprits: - app/models/company_notifier.rb - app/views/layouts/main_site/main.html.haml - app/views/layouts/_site_frame.html.haml - app/views/shared/_google_analytics.html.haml - lib/tasks/backfill.rake - app/models/subscription_plan.rb - app/models/notification_setting.rb - app/models/document.rb - app/models/theme.rb - app/models/audio_annotation.rb - app/controllers/developers_controller.rb - lib/actionview_ex.rb - lib/actioncontroller_ex.rb - lib/paperclip_processors/document_converter.rb - lib/paperclip_processors/pdf_converter.rb - lib/paperclip_processors/document_thumbnail.rb - lib/tasks/voice_extensions.rake Soon-to-be-deprecated ActiveRecord calls Methods such as find(:all), find(:first), finds with conditions, and the :joins option will soon be deprecated. More information: http://m.onkey.org/2010/1/22/active-record-query-interface The culprits: - app/models/activity.rb - app/models/invite.rb - app/models/product.rb - app/models/company.rb - app/models/ad.rb - app/models/question_pool.rb - app/models/cart.rb - app/models/homepage_feature.rb - app/models/web_link.rb - app/models/course.rb - app/models/order.rb - app/models/post.rb - app/models/document.rb - app/models/photo.rb - app/models/user_subscription.rb - app/models/comment.rb - app/models/clipping.rb - app/models/enrollment.rb - app/models/certification.rb - app/models/site_order.rb - app/models/group.rb - app/models/purchase.rb - app/models/user.rb - app/models/questionnaire.rb - app/models/live_event.rb - app/models/product_question.rb - app/models/site_subscription.rb - app/models/live_event_presentation.rb - app/models/drop_box_item.rb - app/controllers/recommendations_controller.rb - app/controllers/forums_controller.rb - app/controllers/questionnaires/questions_controller.rb - app/controllers/my_learnings/events_controller.rb - app/controllers/my_learnings/drop_boxes/users_controller.rb - app/controllers/tags_controller.rb - app/controllers/live_events_controller.rb - app/controllers/events_controller.rb - app/controllers/api/v1/categories_controller.rb - app/controllers/base_controller.rb - app/controllers/categories_controller.rb - app/controllers/admin/courses_controller.rb - app/controllers/admin/google_sso_settings_controller.rb - app/controllers/admin/pricing_options_controller.rb - app/controllers/admin/pricing_plans_controller.rb - app/controllers/admin/dashboard_controller.rb - app/controllers/topics_controller.rb - app/controllers/albums_controller.rb - app/controllers/certifications_controller.rb - app/controllers/users_controller.rb - app/controllers/sb_posts_controller.rb - app/controllers/ads_controller.rb - app/controllers/contents_controller.rb - app/models/activity.rb - app/models/tag.rb - app/models/annotation.rb - app/models/scorm_session.rb - app/models/course.rb - app/models/photo.rb - app/models/tincan_session.rb - app/models/enrollment.rb - app/models/certification.rb - app/models/group.rb - app/models/user.rb - app/models/live_event.rb - app/models/content.rb - app/models/drop_box_item.rb - app/controllers/messages_controller.rb - app/controllers/annotations_controller.rb - app/controllers/audio_annotations_controller.rb - app/helpers/admin/dashboard_helper.rb - app/models/invite.rb - app/models/company.rb - app/models/tag.rb - app/models/annotation.rb - app/models/scorm_session.rb - app/models/document.rb - app/models/photo.rb - app/models/user_subscription.rb - app/models/comment.rb - app/models/clipping.rb - app/models/tincan_session.rb - app/models/certification.rb - app/models/site_order.rb - app/models/group.rb - app/models/purchase.rb - app/models/user.rb - app/models/live_event.rb - app/models/product_question.rb - app/models/live_event_presentation.rb - app/models/drop_box_item.rb - app/controllers/sessions_controller.rb - app/controllers/recommendations_controller.rb - app/controllers/questionnaires/questions_controller.rb - app/controllers/my_learnings/drop_boxes/users_controller.rb - app/controllers/messages_controller.rb - app/controllers/tags_controller.rb - app/controllers/live_events_controller.rb - app/controllers/orders_controller.rb - app/controllers/annotations_controller.rb - app/controllers/api/authentication/sessions_controller.rb - app/controllers/api/authentication/oauth_controller.rb - app/controllers/client_applications_controller.rb - app/controllers/categories_controller.rb - app/controllers/audio_annotations_controller.rb - app/controllers/admin/courses_controller.rb - app/controllers/admin/client_apps_controller.rb - app/controllers/admin/google_sso_settings_controller.rb - app/models/content_version.rb - app/models/product.rb - app/models/company.rb - app/models/poll.rb - app/models/web_link.rb - app/models/course.rb - app/models/order.rb - app/models/category.rb - app/models/post.rb - app/models/document.rb - app/models/user_subscription.rb - app/models/question.rb - app/models/comment.rb - app/models/response.rb - app/models/enrollment.rb - app/models/coupon_usage.rb - app/models/site_order.rb - app/models/group.rb - app/models/purchase.rb - app/models/user.rb - app/models/client_application.rb - app/models/content.rb - app/models/product_question.rb - app/models/site_subscription.rb - app/models/drop_box_item.rb - app/models/group_topic.rb - app/controllers/sb_posts_controller.rb named_scope is now just scope The named_scope method has been renamed to just scope. More information: http://github.com/rails/rails/commit/d60bb0a9e4be2ac0a9de9a69041a4ddc2e0cc914 The culprits: - app/models/subscription_plan.rb - app/models/content_version.rb - app/models/activity.rb - app/models/product.rb - app/models/company.rb - app/models/tag.rb - app/models/wepay_account.rb - app/models/response_set.rb - app/models/poll.rb - app/models/annotation.rb - app/models/notification_setting.rb - app/models/cart.rb - app/models/selection.rb - app/models/course.rb - app/models/user_notification_setting.rb - app/models/panel_position.rb - app/models/group_meeting.rb - app/models/order.rb - app/models/category.rb - app/models/drop_box_association.rb - app/models/translation.rb - app/models/post.rb - app/models/coupon.rb - app/models/document.rb - app/models/featured_item.rb - app/models/photo.rb - app/models/disable_company_feature.rb - app/models/question.rb - app/models/bundle_item.rb - app/models/in_person_event.rb - app/models/progress_score.rb - app/models/comment.rb - app/models/user_invitation.rb - app/models/response.rb - app/models/enrollment.rb - app/models/meeting.rb - app/models/course_participant.rb - app/models/site_order_item.rb - app/models/coupon_usage.rb - app/models/footer_link.rb - app/models/certification.rb - app/models/site_order.rb - app/models/group.rb - app/models/event.rb - app/models/css_rule.rb - app/models/privilege.rb - app/models/recommendation.rb - app/models/purchase.rb - app/models/user.rb - app/models/questionnaire.rb - app/models/role.rb - app/models/client_application.rb - app/models/bundle.rb - app/models/merchant_account.rb - app/models/live_event.rb - app/models/product_suggestion.rb - app/models/content.rb - app/models/product_question.rb - app/models/site_subscription.rb - app/models/voice_extension.rb - app/models/announcement.rb - app/models/drop_box_item.rb - app/models/group_topic.rb - app/models/company_email_domain.rb - app/models/group_membership.rb Deprecated AJAX helper calls AJAX javascript helpers have been switched to be unobtrusive and use :remote => true instead of having a seperate function to handle remote requests. More information: http://blog.jordanwest.me/modest-rubyist-archive/rails-3-ujs-and-csrf-meta-tags The culprits: - app/views/admin/billings/_show_subscription_history.html.haml - app/views/admin/client_apps/index.html.haml - app/views/admin/client_apps/_status_actions.html.haml - app/views/admin/client_apps/_approve_app.html.haml - app/views/admin/coupons/_details.html.haml - app/views/admin/disk_usages/_user_details.html.haml - app/views/admin/disk_usages/_company.html.haml - app/views/admin/disk_usages/_company_details.html.haml - app/views/admin/footer_texts/_form.html.haml - app/views/admin/orders/_index.html.haml - app/views/admin/orders/_refund_confirmation.html.haml - app/views/admin/pricing_options/show.html.haml - app/views/admin/pricing_plans/_show_confirmation_lightbox.html.haml - app/views/admin/pricing_plans/_course_fields.html.haml - app/views/admin/reports/courses_by_user/index.html.haml - app/views/admin/reports/users_by_course/index.html.haml - app/views/admin/site_manager/sites.html.haml - app/views/admin/site_orders/show.html.haml - app/views/admin/site_subscriptions/show.html.haml - app/views/admin/sso_settings/show.html.haml - app/views/admin/subscription_plans/_plan_list.html.haml - app/views/admin/translations/index.html.haml - app/views/admin/users/_user.html.haml - app/views/admin/users/_approve_user.html.haml - app/views/admin/users/index.html.haml - app/views/admin/users/_status_actions.html.haml - app/views/bookmarks/_new.html.haml - app/views/bookmarks/_remove_bookmark.html.haml - app/views/bundles/show.html.haml - app/views/certifications/_empty_preview.html.haml - app/views/certifications/show.html.haml - app/views/comments/_limited_comments.html.haml - app/views/comments/_show.html.haml - app/views/companies/_edit_custom_domain.html.haml - app/views/content_picker/_create_certification_content_menu.html.haml - app/views/content_picker/_paginated_index.html.haml - app/views/contents/_category.html.haml - app/views/contents/_content_info.html.haml - app/views/contents/_embed.html.haml - app/views/contents/_item_detail.html.haml - app/views/contents/_item_detail_grid_view.html.haml - app/views/contents/_recently_viewed_item.html.haml - app/views/contents/index.html.haml - app/views/contents/show.html.haml - app/views/courses/_show.html.haml - app/views/documents/_edit.html.haml - app/views/documents/_new.html.haml - app/views/followings/_new.html.haml - app/views/followings/_unfollow.html.haml - app/views/groups/_discussions.html.haml - app/views/groups/_group_detail.html.haml - app/views/groups/_group_user_status.html.haml - app/views/groups/_manage_members.html.haml - app/views/groups/topics/_show.html.haml - app/views/groups/topics/_reply_button.html.haml - app/views/groups/topics/comments/_show.html.haml - app/views/in_person_events/show.html.haml - app/views/likes/_new.html.haml - app/views/likes/_unlike.html.haml - app/views/live_events/_empty_preview.html.haml - app/views/live_events/show.html.haml - app/views/messages/_message_actions.html.haml - app/views/messages/_message_title_row.html.haml - app/views/messages/_tab_nav.html.haml - app/views/messages/index.html.haml - app/views/messages/show.html.haml - app/views/my_learnings/_created_by_me.html.haml - app/views/my_learnings/_upcoming.html.haml - app/views/my_learnings/announcements/_show.html.haml - app/views/my_learnings/archived_items/_enrollment.html.haml - app/views/my_learnings/archived_items/_product.html.haml - app/views/my_learnings/bundles/_bundle.html.haml - app/views/my_learnings/certifications/_certification.html.haml - app/views/my_learnings/comments/_comment.html.haml - app/views/my_learnings/contents_by_me/_content.html.haml - app/views/my_learnings/courses/_course.html.haml - app/views/my_learnings/drop_boxes/_content.html.haml - app/views/my_learnings/drop_boxes/users/_index.html.haml - app/views/my_learnings/events/_show.html.haml - app/views/my_learnings/groups/_group.html.haml - app/views/my_learnings/in_person_events/_in_person_event.html.haml - app/views/my_learnings/index.html.haml - app/views/my_learnings/live_events/_live_event.html.haml - app/views/my_learnings/live_events/_status_live.html.haml - app/views/my_learnings/my_groups/_show.html.haml - app/views/my_learnings/posts/_post.html.haml - app/views/orders/_cart.html.haml - app/views/photos/_index.html.haml - app/views/photos/_paginated_index.html.haml - app/views/posts/_category.html.haml - app/views/posts/_popular.html.haml - app/views/posts/_post_detail.html.haml - app/views/posts/_top_rated.html.haml - app/views/posts/for_super_site/_show.html.haml - app/views/posts/for_super_site/_post_detail.html.haml - app/views/posts/index.html.haml - app/views/product_picker/_paginated_index.html.haml - app/views/product_questions/_list.html.haml - app/views/product_questions/_open_questions.html.haml - app/views/product_questions/_popular_questions.html.haml - app/views/product_questions/_product_question.html.haml - app/views/product_questions/_show.html.haml - app/views/questionnaires/_new.html.haml - app/views/questionnaires/_question_type_popup.html.haml - app/views/questionnaires/edit.html.haml - app/views/questions/checkbox/_edit.html.haml - app/views/questions/fill_blanks/_edit.html.haml - app/views/questions/hotspot/_edit.html.haml - app/views/questions/radiobutton/_edit.html.haml - app/views/questions/textarea/_edit.html.haml - app/views/questions/yesno/_edit.html.haml - app/views/redemptions/_coupon.html.haml - app/views/reports/course_purchase_history/_payment_status.html.haml - app/views/reports/show.html.haml - app/views/reports/users_by_quiz/_view_details_link.html.haml - app/views/reports/users_by_quiz/_details_report.html.haml - app/views/reports/users_by_quiz/_details_view.html.haml - app/views/reports/users_by_quiz/_view_response_link.html.haml - app/views/response_sets/_edit.html.haml - app/views/response_sets/_new.html.haml - app/views/response_sets/_show.html.haml - app/views/scorm_packages/_activity.html.haml - app/views/scorm_packages/_new.html.haml - app/views/shared/_add_quiz_content_link.html.haml - app/views/shared/_chat_users.html.haml - app/views/shared/_edit_item.html.haml - app/views/shared/_group_membership_action.html.haml - app/views/shared/_invitation_action.html.haml - app/views/shared/_item.html.haml - app/views/shared/_search_categories_popup.html.haml - app/views/shared/_search_folders_popup.html.haml - app/views/shared/_search_tags_popup.html.haml - app/views/site_manager/_site_panel.html.haml - app/views/site_manager/sites/_index.html.haml - app/views/site_manager/sites/_rejected_list.html.haml - app/views/site_manager/sites/_approve_list.html.haml - app/views/site_manager/sites/_suspended_list.html.haml - app/views/survey_responses/_edit.html.haml - app/views/survey_responses/_new.html.haml - app/views/survey_responses/_show.html.haml - app/views/tincan_packages/_activity.html.haml - app/views/tincan_packages/_new_disabled.html.haml - app/views/tincan_packages/_new_enabled.html.haml - app/views/users/_update_chat_status.html.haml - app/views/users/courses/_empty_preview.html.haml - app/views/users/orders/_index.html.haml - app/views/users/posts/_post_details.html.haml - app/views/users/posts/show.html.haml - app/views/users/posts/toggle_visibility.js.rjs - app/views/users/show.html.haml - app/views/users/subscriptions/_show.html.haml - app/views/video_manager/_new.html.haml - app/views/video_manager/_upload_file.html.haml - app/views/web_texts/_new.html.haml - app/views/admin/dashboard/_show.html.haml - app/views/admin/pricing_plans/_show.html.haml - app/views/admin/sites/_search.html.haml - app/views/admin/users/_show_roles.html.haml - app/views/admin/users/_search.html.haml - app/views/chats/_panel.html.haml - app/views/content_picker/_collapsed.html.haml - app/views/content_picker/_expanded.html.haml - app/views/content_picker/_paginated_index.html.haml - app/views/content_picker/_paginated_index_expanded.html.haml - app/views/contents/_embed.html.haml - app/views/groups/members/_new_group_message.html.haml - app/views/groups/topics/_index.html.haml - app/views/home/homepage_highlights/_edit.html.haml - app/views/notification_settings/_index.html.haml - app/views/password_resets/_new.html.haml - app/views/photos/_paginated_index.html.haml - app/views/polls/_poll_ui.html.haml - app/views/product_picker/_collapsed.html.haml - app/views/product_picker/_expanded.html.haml - app/views/product_picker/_paginated_index.html.haml - app/views/product_picker/_paginated_index_expanded.html.haml - app/views/reports/filter_templates/_course_summary.html.haml - app/views/reports/filter_templates/_course_purchase_history.html.haml - app/views/reports/filter_templates/_my_course_detail.html.haml - app/views/reports/filter_templates/_content_specific.html.haml - app/views/reports/filter_templates/_group_user_history.html.haml - app/views/reports/filter_templates/_site_groups.html.haml - app/views/reports/filter_templates/_reports_search.html.haml - app/views/reports/filter_templates/_site_user_history.html.haml - app/views/shared/_page_form.html.haml - app/views/shared/_publish_custom_appearance.html.haml - app/views/users/_forgot_password.html.haml - app/views/users/achievements/_select.html.haml - app/views/users/analytics/_show.html.haml - app/views/video_manager/_upload_file.html.haml - app/views/admin/client_apps/_new.html.haml - app/views/admin/client_apps/_edit.html.haml - app/views/admin/footer_links/_new.html.haml - app/views/admin/google_sso_settings/_edit.html.haml - app/views/admin/product_subscription_settings/_form.html.haml - app/views/admin/site_features/_show.haml - app/views/admin/site_manager/show.html.haml - app/views/admin/site_orders/_site_order_items.html.haml - app/views/admin/subscription_plans/_enterprise_plan_contact_form.html.haml - app/views/admin/subscription_plans/_custom_plans.html.haml - app/views/admin/subscription_settings/_edit_form.html.haml - app/views/admin/users/_new.html.haml - app/views/admin/users/_upload_ui.html.haml - app/views/api/authentication/sessions/_new.html.haml - app/views/carts/_cart.html.haml - app/views/categories/_new.html.haml - app/views/client_applications/_new.html.haml - app/views/content_availabilities/_new.html.haml - app/views/contents/index.html.haml - app/views/documents/_form.html.haml - app/views/drop_boxes/index.html.haml - app/views/drop_boxes/show.html.haml - app/views/enrollments/_notice_after_enrollment.html.haml - app/views/examples/groups/_new.html.haml - app/views/featured_products/_new.html.haml - app/views/groups/_filter.html.haml - app/views/groups/live_events/_new.html.haml - app/views/home/featured_items/_new.html.haml - app/views/home/homepage_highlights/_edit.html.haml - app/views/invites/_new.html.haml - app/views/live_events/_form.html.haml - app/views/merchant_account/_edit.html.haml - app/views/merchant_account/_new.html.haml - app/views/my_learnings/drop_boxes/upload.html.haml - app/views/my_learnings/recommendations/_recommendations.html.haml - app/views/my_learnings/unpublished_items/_publish_options.html.haml - app/views/orders/_cart.html.haml - app/views/orders/_order_form.html.haml - app/views/photos/_edit.html.haml - app/views/photos/_new.html.haml - app/views/posts/index.html.haml - app/views/questionnaires/_edit_questionnaire_form.html.haml - app/views/questionnaires/_questionnaires_form.html.haml - app/views/questions/_multiple_choice.html.haml - app/views/questions/checkbox/_edit.html.haml - app/views/questions/fill_blanks/_edit.html.haml - app/views/questions/hotspot/_edit.html.haml - app/views/questions/radiobutton/_edit.html.haml - app/views/questions/textarea/_edit.html.haml - app/views/questions/yesno/_edit.html.haml - app/views/redemptions/_index.html.haml - app/views/reports/show.html.haml - app/views/response_sets/_edit.html.haml - app/views/scorm_packages/_edit_form.html.haml - app/views/scorm_packages/_new_form.html.haml - app/views/sessions/_signin_form.html.haml - app/views/sessions/for_super_site/_new.html.haml - app/views/site_features/_index.html.haml - app/views/site_manager/show.html.haml - app/views/survey_responses/_edit.html.haml - app/views/tags/_lightbox_new.html.haml - app/views/tincan_packages/_edit_form.html.haml - app/views/tincan_packages/_new_form.html.haml - app/views/users/_new.html.haml - app/views/users/contents/_edit.html.haml - app/views/users/for_super_site/_new.html.haml - app/views/users/posts/_edit.html.haml - app/views/video_manager/videos/_new.html.haml - app/views/video_manager/videos/_edit.html.haml - app/views/web_links/_edit.html.haml - app/views/web_links/_new.html.haml - app/views/web_texts/_edit.html.haml - app/views/web_texts/_new.html.haml - app/views/admin/coupons/_new.html.haml - app/views/admin/coupons/_edit.html.haml - app/views/admin/css_styles/_form.html.haml - app/views/admin/footer_texts/_new.html.haml - app/views/admin/footer_texts/_edit.html.haml - app/views/admin/site_properties/show.html.haml - app/views/admin/subscription_plans/_new.html.haml - app/views/admin/subscription_plans/_edit.html.haml - app/views/admin/translations/_index.html.haml - app/views/comments/_new.html.haml - app/views/comments/_reply.html.haml - app/views/companies/edit.html.haml - app/views/contact_uss/_form.html.haml - app/views/groups/_edit_description.html.haml - app/views/groups/_edit_info.html.haml - app/views/groups/_new.html.haml - app/views/groups/topics/_new.html.haml - app/views/groups/topics/comments/_new.html.haml - app/views/home/companies/_edit.html.haml - app/views/home/homepage_highlights/_edit.html.haml - app/views/in_person_events/_edit.html.haml - app/views/in_person_events/_new.html.haml - app/views/messages/_form.html.haml - app/views/my_learnings/announcements/_new.html.haml - app/views/my_learnings/announcements/_edit.html.haml - app/views/my_learnings/drop_boxes/course/_edit.html.haml - app/views/my_learnings/drop_boxes/users/_new.html.haml - app/views/my_learnings/events/_new.html.haml - app/views/my_learnings/events/_edit.html.haml - app/views/password_resets/_edit.html.haml - app/views/product_questions/_new.html.haml - app/views/product_questions/_new_question.html.haml - app/views/product_questions/_reply.html.haml - app/views/ratings/_rating_breakup.html.haml - app/views/recommendations/_new.html.haml - app/views/users/_change_password.html.haml - app/views/users/_edit_description.html.haml - app/views/users/_edit_email.html.haml - app/views/users/_edit_name.html.haml - app/views/users/_edit_personal_info.html.haml - app/views/users/_new_password.html.haml - app/views/users/courses/_catalog_display_date.html.haml - app/views/users/posts/_new.html.haml - app/views/users/posts/_edit_display_date_time.html.haml Deprecated ActionMailer API You're using the old ActionMailer API to send e-mails in a controller, model, or observer. More information: http://lindsaar.net/2010/1/26/new-actionmailer-api-in-rails-3 The culprits: - app/models/subscription_plan.rb - app/models/subscription_payment.rb - app/models/company.rb - app/models/send_blog_published_notification.rb - app/models/user_invitation.rb - app/models/enrollment.rb - app/models/group.rb - app/models/payment.rb - app/models/user.rb - app/models/client_application.rb - app/models/live_event.rb - app/models/site_subscription.rb - app/models/contact_us.rb - app/controllers/base_controller.rb - app/controllers/companies_controller.rb - app/controllers/client_applications_controller.rb - app/controllers/admin/users_controller.rb - app/controllers/users_controller.rb - app/controllers/salesforce/users_controller.rb - app/controllers/password_resets_controller.rb Old ActionMailer class API You're using the old API in a mailer class. More information: http://lindsaar.net/2010/1/26/new-actionmailer-api-in-rails-3 The culprits: - app/models/client_application_notifier.rb - app/models/company_notifier.rb - app/models/user_notifier.rb - app/models/question.rb - app/models/client_application_notifier.rb - app/models/company_notifier.rb - app/models/user_notifier.rb - app/models/message.rb - app/models/contact_us.rb - app/models/subscription_payment.rb - app/models/activity.rb Updated syntax for validate_on_* methods Validate-on-callback methods (validate_on_create/validate_on_destroy) have been changed to validate :x, :on => :create More information: https://rails.lighthouseapp.com/projects/8994/tickets/3880-validate_on_create-and-validate_on_update-no-longer-seem-to-exist The culprits: - app/models/in_person_event.rb - app/models/user.rb - app/models/live_event.rb Deprecated session secret setting Previously, session secret was set directly on ActionController::Base; it's now config.secret_token. More information: http://lindsaar.net/2010/4/7/rails_3_session_secret_and_session_store The culprits: - config/initializers/session_store.rb Old Rails generator API A plugin in the app is using the old generator API (a new one may be available at http://github.com/trydionel/rails3-generators). More information: http://blog.plataformatec.com.br/2010/01/discovering-rails-3-generators/ The culprits: - vendor/plugins/acts_as_likeable/generators/ - vendor/plugins/acts_as_likeable/generators/acts_as_likeable_migration/ - vendor/plugins/delayed_job/generators/ - vendor/plugins/delayed_job/generators/delayed_job/ - vendor/plugins/acts_as_bookmarkable/generators/ - vendor/plugins/acts_as_bookmarkable/generators/acts_as_bookmarkable_migration/ - vendor/plugins/community_engine/plugins/acts_as_publishable/generators/ - vendor/plugins/community_engine/plugins/acts_as_publishable/generators/publishing/ - vendor/plugins/community_engine/plugins/simple_private_messages/generators/ - vendor/plugins/community_engine/plugins/simple_private_messages/generators/private_message_scaffold/ - vendor/plugins/community_engine/plugins/simple_private_messages/generators/private_message_model/ - vendor/plugins/community_engine/plugins/activity_tracker/generators/ - vendor/plugins/community_engine/plugins/activity_tracker/generators/activity_migration/ - vendor/plugins/community_engine/plugins/acts_as_taggable_on_steroids/generators/ - vendor/plugins/community_engine/plugins/acts_as_taggable_on_steroids/generators/acts_as_taggable_migration/ - vendor/plugins/community_engine/generators/ - vendor/plugins/community_engine/generators/plugin_migration/ - vendor/plugins/community_engine/generators/ce_plugin/ - vendor/plugins/oauth-plugin/generators/ - vendor/plugins/oauth-plugin/generators/oauth_provider/ - vendor/plugins/oauth-plugin/generators/oauth_consumer/ - vendor/plugins/acts_as_followable/generators/ - vendor/plugins/acts_as_followable/generators/acts_as_followable_migration/ - vendor/plugins/azabaj-acts_as_rateable/generators/ - vendor/plugins/azabaj-acts_as_rateable/generators/acts_as_rateable_migration/ - vendor/plugins/authlogic/generators/ - vendor/plugins/authlogic/generators/session/ - vendor/plugins/rails-settings/generators/ - vendor/plugins/rails-settings/generators/settings_migration/ Updated syntax for before_validation_on_* methods before_validation_on_* methods have been changed to before_validation(:on => :create/:update) { ... } More information: https://rails.lighthouseapp.com/projects/8994/tickets/4699-before_validation_on_create-and-before_validation_on_update-doesnt-exist The culprits: - app/models/oauth_token.rb - app/models/user_invitation.rb - app/models/client_application.rb - app/models/sso_setting.rb Old router API The router API has totally changed. More information: http://yehudakatz.com/2009/12/26/the-rails-3-router-rack-it-up/ The culprits: - config/routes.rb Deprecated ActionMailer attribute :sent_on Using the new mailer API, you can specify :date to the mail method. More information: http://stackoverflow.com/questions/7367185/weird-error-when-delivering-mail-undefined-method-index-for-2011-09-09-2215 The culprits: - app/models/client_application_notifier.rb - app/models/company_notifier.rb - app/models/user_notifier.rb