diff --git a/app/models/note.rb b/app/models/note.rb index 27f006a92..0165cbcd7 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -32,6 +32,10 @@ class Note < ActiveRecord::Base joins(:post).where("posts.tag_index @@ to_tsquery('danbooru', E?)", query.to_escaped_for_tsquery_split) end + def for_creator(user_id) + where("creator_id = ?", user_id) + end + def creator_name(name) where("creator_id = (select _.id from users _ where lower(_.name) = ?)", name.mb_chars.downcase) end diff --git a/app/models/pool.rb b/app/models/pool.rb index 977b5c79a..6b6d5f4ae 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -38,14 +38,18 @@ class Pool < ActiveRecord::Base order("(case category when 'series' then 0 else 1 end), name") end + def name_matches(name) + name = name.tr(" ", "_") + name = "*#{name}*" unless name =~ /\*/ + where("name ilike ? escape E'\\\\'", name.to_escaped_for_sql_like) + end + def search(params) q = scoped params = {} if params.blank? if params[:name_matches].present? - name_matches = params[:name_matches].tr(" ", "_") - name_matches = "*#{name_matches}*" unless name_matches =~ /\*/ - q = q.where("name ilike ? escape E'\\\\'", name_matches.to_escaped_for_sql_like) + q = q.name_matches(params[:name_matches]) end if params[:description_matches].present?