Skip to content

Instantly share code, notes, and snippets.

@Marchino
Created July 29, 2011 13:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Marchino/1113832 to your computer and use it in GitHub Desktop.
Save Marchino/1113832 to your computer and use it in GitHub Desktop.
Search with squeel
class String
def to_query_params
words = []
self.split(/\W/).each do |word|
words << "%#{word}%"
end
return words
end
end
search_string = params[:q] || ""
words = search_string.to_query_params
@collection = current_user.questions.joins{item(RareBook).outer}
.joins{item(Comicbook).outer}
.joins{item(ModernBook).outer}
.joins{item(Photo).outer}
.joins{item(Autograph).outer}
.joins{item(Postcard).outer}
.joins{item(Print).outer}
.joins{item(Newspaper).outer}
.joins{bookshop.profile.outer}
.where do
(item(RareBook).title.like_any words) |
(item(Comicbook).title.like_any words) |
(item(ModernBook).title.like_any words) |
(item(Photo).title.like_any words) |
(item(Autograph).title.like_any words) |
(item(Postcard).title.like_any words) |
(item(Print).title.like_any words) |
(item(Newspaper).title.like_any words) |
(bookshop.profile.name.like_any words) |
(id.eq search_string)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment