2015-10-15 1 views
0

Je travaille sur une application cartographique et je veux une fonctionnalité où l'utilisateur peut effectuer une recherche en entrant un mot-clé et en cliquant sur une étiquette en même temps. Cela devrait afficher tous les utilisateurs avec ces balises autour de cette zone. Voici comment il ressemble:Rails combinant recherche et taggings

user_controller.rb

def index 
    if params[:search].present? 
     @users = User.near(params[:search], 10, units: :mi) 
    elsif params[:tag].present? 
     @users = User.tagged_with(params[:tag], :match_all => true) 
    else 
     @users = User.all 
    end 
    end 

index.html.erb

<%= text_field_tag :search, params[:search] %> 
<%= submit_tag "Search" %> 

<div id="tag_cloud"> 
    <% tag_cloud User.tag_counts_on(:tags).order("name ASC"), %w[s m l] do |tag, css_class| %> 
    <%= link_to tag.name, tag_path(tag:(tag.name), class: css_class) %> 
</div> 

Répondre

0

Pas sûr de vos besoins depuis votre question n'a pas une vraie question, mais pourquoi ne pas Vous n'avez qu'à enchaîner vos demandes? I.e .:

def index 
    @users = User.all 
    @users = @users.near(params[:search], 10, units: :mi) if params[:search].present? 
    @users = @users.tagged_with(params[:tag], :match_all => true) if params[:tag].present? 
end 
+0

Merci, mais c'est ce que j'ai fait si dans mon contrôleur. Je veux être en mesure de filtrer en utilisant la recherche et la balise en même temps – Ray

+0

C'est exactement ce que le code que j'ai posté fait? Lisez-le à nouveau, c'est différent de ce que vous avez posté. – Jaxx