Commit 172e15cc authored by maeda's avatar maeda

Use find_by instead of where.first to remove unnecessary sorting (#26747).

Patch by  Yuichi HARADA.


git-svn-id: https://svn.redmine.org/redmine/trunk@17586 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent cebeeaba
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......@@ -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?
......
......@@ -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
......
......@@ -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
......
......@@ -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?
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment