aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrhenium <rhenium@rhe.jp>2014-05-23 06:30:36 +0900
committerrhenium <rhenium@rhe.jp>2014-05-23 06:30:36 +0900
commitf72a880f75559b61bebf121854fa43930b60ab0e (patch)
treee36f552fb0d444464abf8c217012f2648c276b88
parent210b1710317dcbd1168289cc2cf3084e4b29dedb (diff)
downloadaclog-f72a880f75559b61bebf121854fa43930b60ab0e.tar.gz
web: refactor users#user_jump_suggest
-rw-r--r--app/controllers/users_controller.rb3
-rw-r--r--app/models/user.rb2
2 files changed, 3 insertions, 2 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 5c8e531..336defc 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -18,8 +18,7 @@ class UsersController < ApplicationController
end
def user_jump_suggest
- q = params[:head].to_s.gsub(/(_|%)/) {|x| "\\" + x }
- users = User.where("screen_name LIKE ?", "#{q}%").order(screen_name: :asc).limit(10)
+ users = User.suggest_screen_name(params[:head].to_s).limit(10)
filtered = users.map {|user| { name: user.name, screen_name: user.screen_name, profile_image_url: user.profile_image_url_mini } }
render json: filtered
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 9da02e5..dae982d 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -6,6 +6,8 @@ class User < ActiveRecord::Base
has_many :retweets
has_one :account
+ scope :suggest_screen_name, ->(str) { where("screen_name LIKE ?", "#{str.gsub(/(_|%)/) {|x| "\\" + x }}%").order(screen_name: :asc) }
+
class << self
def find(*args)
hash = args.first