diff options
author | rhenium <rhenium@rhe.jp> | 2014-05-23 06:30:36 +0900 |
---|---|---|
committer | rhenium <rhenium@rhe.jp> | 2014-05-23 06:30:36 +0900 |
commit | f72a880f75559b61bebf121854fa43930b60ab0e (patch) | |
tree | e36f552fb0d444464abf8c217012f2648c276b88 | |
parent | 210b1710317dcbd1168289cc2cf3084e4b29dedb (diff) | |
download | aclog-f72a880f75559b61bebf121854fa43930b60ab0e.tar.gz |
web: refactor users#user_jump_suggest
-rw-r--r-- | app/controllers/users_controller.rb | 3 | ||||
-rw-r--r-- | app/models/user.rb | 2 |
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 |