add Note#for_creator, Pool#name_matches

This commit is contained in:
Toks
2013-12-07 22:05:42 -05:00
parent 3e5cb612fe
commit 81aa294b38
2 changed files with 11 additions and 3 deletions

View File

@@ -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

View File

@@ -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?