From 9ab2471a9280f0029b63b831ffa4b319ec54b1bf Mon Sep 17 00:00:00 2001 From: Navin Date: Thu, 15 Aug 2013 17:52:18 +0200 Subject: [PATCH] Fix rails4 deprecation warnings That appear when running topic_spec.rb --- app/models/category.rb | 10 +++++++++- lib/topic_query.rb | 12 ++++++------ lib/trashable.rb | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/models/category.rb b/app/models/category.rb index 853d94ddfde..942fa06a5aa 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -1,9 +1,17 @@ class Category < ActiveRecord::Base belongs_to :topic, dependent: :destroy - belongs_to :topic_only_relative_url, + if rails4? + belongs_to :topic_only_relative_url, + -> { select "id, title, slug" }, + class_name: "Topic", + foreign_key: "topic_id" + else + belongs_to :topic_only_relative_url, select: "id, title, slug", class_name: "Topic", foreign_key: "topic_id" + end + belongs_to :user has_many :topics diff --git a/lib/topic_query.rb b/lib/topic_query.rb index 58d6abef0fc..eea9926c686 100644 --- a/lib/topic_query.rb +++ b/lib/topic_query.rb @@ -212,23 +212,23 @@ class TopicQuery end result = result.listable_topics.includes(category: :topic_only_relative_url) - result = result.where('categories.name is null or categories.name <> ?', options[:exclude_category]) if options[:exclude_category] - result = result.where('categories.name = ?', options[:only_category]) if options[:only_category] + result = (rails4? ? result.where('categories.name is null or categories.name <> ?', options[:exclude_category]).references(:categories) : result.where('categories.name is null or categories.name <> ?', options[:exclude_category])) if options[:exclude_category] + result = (rails4? ? result.where('categories.name = ?', options[:only_category]).references(:categories) : result.where('categories.name = ?', options[:only_category])) if options[:only_category] result = result.limit(options[:per_page]) unless options[:limit] == false result = result.visible if options[:visible] || @user.nil? || @user.regular? - result = result.where('topics.id <> ?', options[:except_topic_id]) if options[:except_topic_id] + result = (rails4? ? result.where('topics.id <> ?', options[:except_topic_id]).references(:topics) : result.where('topics.id <> ?', options[:except_topic_id])) if options[:except_topic_id] result = result.offset(options[:page].to_i * options[:per_page]) if options[:page] if options[:topic_ids] - result = result.where('topics.id in (?)', options[:topic_ids]) + result = rails4? ? result.where('topics.id in (?)', options[:topic_ids]).references(:topics) : result.where('topics.id in (?)', options[:topic_ids]) end unless @user && @user.moderator? category_ids = @user.secure_category_ids if @user if category_ids.present? - result = result.where('categories.read_restricted IS NULL OR categories.read_restricted = ? OR categories.id IN (?)', false, category_ids) + result = rails4? ? result.where('categories.read_restricted IS NULL OR categories.read_restricted = ? OR categories.id IN (?)', false, category_ids).references(:categories) : result.where('categories.read_restricted IS NULL OR categories.read_restricted = ? OR categories.id IN (?)', false, category_ids) else - result = result.where('categories.read_restricted IS NULL OR categories.read_restricted = ?', false) + result = rails4? ? result.where('categories.read_restricted IS NULL OR categories.read_restricted = ?', false).references(:categories) : result.where('categories.read_restricted IS NULL OR categories.read_restricted = ?', false) end end diff --git a/lib/trashable.rb b/lib/trashable.rb index ef6fd724373..0dc1aef274b 100644 --- a/lib/trashable.rb +++ b/lib/trashable.rb @@ -2,7 +2,7 @@ module Trashable extend ActiveSupport::Concern included do - default_scope where(with_deleted_scope_sql) + default_scope { where(with_deleted_scope_sql) } # scope unscoped does not work belongs_to :deleted_by, class_name: 'User'