aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/autocomplete_lines_controller.rb8
-rw-r--r--app/models/chouette/line.rb10
2 files changed, 11 insertions, 7 deletions
diff --git a/app/controllers/autocomplete_lines_controller.rb b/app/controllers/autocomplete_lines_controller.rb
index 6f5009390..8398a92c1 100644
--- a/app/controllers/autocomplete_lines_controller.rb
+++ b/app/controllers/autocomplete_lines_controller.rb
@@ -9,13 +9,7 @@ class AutocompleteLinesController < ChouetteController
@lines = referential.line_referential.lines
@lines = @lines
- .joins(:company)
- .where('
- lines.number LIKE ?
- OR lines.name LIKE ?
- OR companies.name ILIKE ?',
- *Array.new(3, "%#{params[:q]}%")
- )
+ .by_name(params[:q])
.search(params[:q])
.result
.paginate(page: params[:page])
diff --git a/app/models/chouette/line.rb b/app/models/chouette/line.rb
index b3c4f2463..f65d313b3 100644
--- a/app/models/chouette/line.rb
+++ b/app/models/chouette/line.rb
@@ -43,6 +43,16 @@ module Chouette
scope :by_text, ->(text) { where('lower(name) LIKE :t or lower(published_name) LIKE :t or lower(objectid) LIKE :t or lower(comment) LIKE :t or lower(number) LIKE :t',
t: "%#{text.downcase}%") }
+ scope :by_name, ->(name) {
+ joins(:company)
+ .where('
+ lines.number LIKE :q
+ OR lines.name LIKE :q
+ OR companies.name ILIKE :q',
+ q: "%#{sanitize_sql_like(name)}%"
+ )
+ }
+
def self.nullable_attributes
[:published_name, :number, :comment, :url, :color, :text_color, :stable_id]
end