Hi Jean, sorry for the late reply.
When you create a search method using pg_search_scope, it takes only one parameter, a string query.
So for your example, you should not pass a Hash into your advance_search method.
Instead, imagine a user wants to find things with the title "Moby Dick" in the place "Paris" with the category "Novel". They could type into a search box the single string "moby dick paris novel" and you could call advance_search this way:
advance_search("moby dick paris novel")
or
advance_search(params[:query]) # this assumes you are in a Rails controller and you have a form that submits a param named "query"
If you are trying to search separately by different fields, then pg_search is not the correct solution. You could try something like this:
def self.searchadv(title, place, category)
where(:title => title, :place => place, :category => category)
end
But that will only find exact matches. Doing something more advanced than this is an exercise for the reader.
Grant