]> git.openstreetmap.org Git - rails.git/commitdiff
Use hashes to define where..in sql queries
authorAndy Allan <git@gravitystorm.co.uk>
Thu, 3 Aug 2023 09:56:05 +0000 (10:56 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Thu, 3 Aug 2023 10:04:28 +0000 (11:04 +0100)
This is preferable to using SQL statements.

app/controllers/application_controller.rb
app/models/trace.rb

index d22a031d4bcbbc5707b5cf6e85f687ea7d490204..5dcfee07ca03cc9aaeb84549513305af4c658133 100644 (file)
@@ -22,7 +22,7 @@ class ApplicationController < ActionController::Base
 
   def authorize_web
     if session[:user]
-      self.current_user = User.where(:id => session[:user]).where("status IN ('active', 'confirmed', 'suspended')").first
+      self.current_user = User.where(:id => session[:user], :status => %w[active confirmed suspended]).first
 
       if session[:fingerprint] &&
          session[:fingerprint] != current_user.fingerprint
index 0b9877225b889c11d942aa1eb6f9b13feae8caec..35fee0bf4f800d7fd22f906d1b9cc3040ea5727f 100644 (file)
@@ -35,7 +35,7 @@ class Trace < ApplicationRecord
   has_many :points, :class_name => "Tracepoint", :foreign_key => "gpx_id", :dependent => :delete_all, :inverse_of => :trace
 
   scope :visible, -> { where(:visible => true) }
-  scope :visible_to, ->(u) { visible.where("visibility IN ('public', 'identifiable') OR user_id = ?", u) }
+  scope :visible_to, ->(u) { visible.where(:visibility => %w[public identifiable]).or(visible.where(:user => u)) }
   scope :visible_to_all, -> { where(:visibility => %w[public identifiable]) }
   scope :tagged, ->(t) { joins(:tags).where(:gpx_file_tags => { :tag => t }) }