diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d34a9c0ae..864a9d094 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -964,7 +964,7 @@ module ApplicationHelper link = link_to_project(p, {:only_path => only_path}, :class => 'project') end when 'user' - u = User.visible.where(:id => oid, :type => 'User').first + u = User.visible.find_by(:id => oid, :type => 'User') link = link_to_user(u, :only_path => only_path) if u end elsif sep == ':' @@ -1025,12 +1025,12 @@ module ApplicationHelper link = link_to_project(p, {:only_path => only_path}, :class => 'project') end when 'user' - u = User.visible.where("LOWER(login) = :s AND type = 'User'", :s => name.downcase).first + u = User.visible.find_by("LOWER(login) = :s AND type = 'User'", :s => name.downcase) link = link_to_user(u, :only_path => only_path) if u end elsif sep == "@" name = remove_double_quotes(identifier) - u = User.visible.where("LOWER(login) = :s AND type = 'User'", :s => name.downcase).first + u = User.visible.find_by("LOWER(login) = :s AND type = 'User'", :s => name.downcase) link = link_to_user(u, :only_path => only_path) if u end end diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 6795f602e..cc9b5f930 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -276,7 +276,7 @@ class Attachment < ActiveRecord::Base def self.find_by_token(token) if token.to_s =~ /^(\d+)\.([0-9a-f]+)$/ attachment_id, attachment_digest = $1, $2 - attachment = Attachment.where(:id => attachment_id, :digest => attachment_digest).first + attachment = Attachment.find_by(:id => attachment_id, :digest => attachment_digest) if attachment && attachment.container.nil? attachment end diff --git a/app/models/principal.rb b/app/models/principal.rb index aac4e6b0d..08926d3a1 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -132,7 +132,7 @@ class Principal < ActiveRecord::Base end def visible?(user=User.current) - Principal.visible(user).where(:id => id).first == self + Principal.visible(user).find_by(:id => id) == self end # Returns true if the principal is a member of project diff --git a/app/models/repository.rb b/app/models/repository.rb index 235739057..256222f50 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -247,7 +247,7 @@ class Repository < ActiveRecord::Base return nil if name.blank? s = name.to_s if s.match(/^\d*$/) - changesets.where("revision = ?", s).first + changesets.find_by(:revision => s) else changesets.where("revision LIKE ?", s + '%').first end diff --git a/app/models/repository/git.rb b/app/models/repository/git.rb index 4cb16e524..e48d36490 100644 --- a/app/models/repository/git.rb +++ b/app/models/repository/git.rb @@ -45,7 +45,7 @@ class Repository::Git < Repository return false if v.nil? v.to_s != '0' end - + def report_last_commit=(arg) merge_extra_info "extra_report_last_commit" => arg end @@ -89,7 +89,7 @@ class Repository::Git < Repository def find_changeset_by_name(name) if name.present? - changesets.where(:revision => name.to_s).first || + changesets.find_by(:revision => name.to_s) || changesets.where('scmid LIKE ?', "#{name}%").first end end diff --git a/app/models/repository/mercurial.rb b/app/models/repository/mercurial.rb index 922893a6a..2a8079ca0 100644 --- a/app/models/repository/mercurial.rb +++ b/app/models/repository/mercurial.rb @@ -99,7 +99,7 @@ class Repository::Mercurial < Repository if /[^\d]/ =~ s or s.size > 8 cs = changesets.where(:scmid => s).first else - cs = changesets.where(:revision => s).first + cs = changesets.find_by(:revision => s) end return cs if cs changesets.where('scmid LIKE ?', "#{s}%").first diff --git a/app/models/role.rb b/app/models/role.rb index bf987e210..36ef4bc8b 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -293,7 +293,7 @@ private end def self.find_or_create_system_role(builtin, name) - role = unscoped.where(:builtin => builtin).first + role = unscoped.find_by(:builtin => builtin) if role.nil? role = unscoped.create(:name => name) do |r| r.builtin = builtin diff --git a/app/models/token.rb b/app/models/token.rb index 5990056f5..85d6abb9a 100644 --- a/app/models/token.rb +++ b/app/models/token.rb @@ -112,7 +112,7 @@ class Token < ActiveRecord::Base key = key.to_s return nil unless action.present? && key =~ /\A[a-z0-9]+\z/i - token = Token.where(:action => action, :value => key).first + token = Token.find_by(:action => action, :value => key) if token && (token.action == action) && (token.value == key) && token.user if validity_days.nil? || (token.created_on > validity_days.days.ago) token diff --git a/app/models/user.rb b/app/models/user.rb index 23d897649..c5061225c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -492,7 +492,7 @@ class User < Principal user = where(:login => login).detect {|u| u.login == login} unless user # Fail over to case-insensitive if none was found - user = where("LOWER(login) = ?", login.downcase).first + user = find_by("LOWER(login) = ?", login.downcase) end user end @@ -610,24 +610,24 @@ class User < Principal # eg. project.children.visible(user) Project.unscoped do return @project_ids_by_role if @project_ids_by_role - + group_class = anonymous? ? GroupAnonymous : GroupNonMember group_id = group_class.pluck(:id).first - + members = Member.joins(:project, :member_roles). where("#{Project.table_name}.status <> 9"). where("#{Member.table_name}.user_id = ? OR (#{Project.table_name}.is_public = ? AND #{Member.table_name}.user_id = ?)", self.id, true, group_id). pluck(:user_id, :role_id, :project_id) - + hash = {} members.each do |user_id, role_id, project_id| # Ignore the roles of the builtin group if the user is a member of the project next if user_id != id && project_ids.include?(project_id) - + hash[role_id] ||= [] hash[role_id] << project_id end - + result = Hash.new([]) if hash.present? roles = Role.where(:id => hash.keys).to_a @@ -798,7 +798,7 @@ class User < Principal # Returns the anonymous user. If the anonymous user does not exist, it is created. There can be only # one anonymous user per database. def self.anonymous - anonymous_user = AnonymousUser.unscoped.first + anonymous_user = AnonymousUser.unscoped.find_by(:lastname => 'Anonymous') if anonymous_user.nil? anonymous_user = AnonymousUser.unscoped.create(:lastname => 'Anonymous', :firstname => '', :login => '', :status => 0) raise 'Unable to create the anonymous user.' if anonymous_user.new_record? diff --git a/app/models/wiki.rb b/app/models/wiki.rb index 683fa24f3..186abdc74 100644 --- a/app/models/wiki.rb +++ b/app/models/wiki.rb @@ -53,7 +53,7 @@ class Wiki < ActiveRecord::Base @page_found_with_redirect = false title = start_page if title.blank? title = Wiki.titleize(title) - page = pages.where("LOWER(title) = LOWER(?)", title).first + page = pages.find_by("LOWER(title) = LOWER(?)", title) if page.nil? && options[:with_redirect] != false # search for a redirect redirect = redirects.where("LOWER(title) = LOWER(?)", title).first diff --git a/lib/redmine/field_format.rb b/lib/redmine/field_format.rb index c4960c0f7..4d168b434 100644 --- a/lib/redmine/field_format.rb +++ b/lib/redmine/field_format.rb @@ -155,7 +155,7 @@ module Redmine def target_class nil end - + def possible_custom_value_options(custom_value) possible_values_options(custom_value.custom_field, custom_value.customized) end @@ -625,7 +625,7 @@ module Redmine value ||= label checked = (custom_value.value.is_a?(Array) && custom_value.value.include?(value)) || custom_value.value.to_s == value tag = view.send(tag_method, tag_name, value, checked, :id => nil) - s << view.content_tag('label', tag + ' ' + label) + s << view.content_tag('label', tag + ' ' + label) end if custom_value.custom_field.multiple? s << view.hidden_field_tag(tag_name, '', :id => nil) @@ -730,7 +730,7 @@ module Redmine def reset_target_class @target_class = nil end - + def possible_custom_value_options(custom_value) options = possible_values_options(custom_value.custom_field, custom_value.customized) missing = [custom_value.value_was].flatten.reject(&:blank?) - options.map(&:last) @@ -776,7 +776,7 @@ module Redmine class EnumerationFormat < RecordList add 'enumeration' self.form_partial = 'custom_fields/formats/enumeration' - + def label "label_field_format_enumeration" end @@ -964,7 +964,7 @@ module Redmine end else if custom_value.value.present? - attachment = Attachment.where(:id => custom_value.value.to_s).first + attachment = Attachment.find_by(:id => custom_value.value.to_s) extensions = custom_value.custom_field.extensions_allowed if attachment && extensions.present? && !attachment.extension_in?(extensions) errors << "#{::I18n.t('activerecord.errors.messages.invalid')} (#{l(:setting_attachment_extensions_allowed)}: #{extensions})" @@ -978,14 +978,14 @@ module Redmine def after_save_custom_value(custom_field, custom_value) if custom_value.saved_change_to_value? if custom_value.value.present? - attachment = Attachment.where(:id => custom_value.value.to_s).first + attachment = Attachment.find_by(:id => custom_value.value.to_s) if attachment attachment.container = custom_value attachment.save! end end if custom_value.value_before_last_save.present? - attachment = Attachment.where(:id => custom_value.value_before_last_save.to_s).first + attachment = Attachment.find_by(:id => custom_value.value_before_last_save.to_s) if attachment attachment.destroy end diff --git a/lib/tasks/migrate_from_trac.rake b/lib/tasks/migrate_from_trac.rake index 2b8eeea89..eb0d81e0a 100644 --- a/lib/tasks/migrate_from_trac.rake +++ b/lib/tasks/migrate_from_trac.rake @@ -453,7 +453,7 @@ namespace :redmine do puts # Trac 'resolution' field as a Redmine custom field - r = IssueCustomField.where(:name => "Resolution").first + r = IssueCustomField.find_by(:name => "Resolution") r = IssueCustomField.new(:name => 'Resolution', :field_format => 'list', :is_filter => true) if r.nil?