Dans mon application rails, j'ai une page d'élément qui répertorie les balises d'un élément. Les utilisateurs peuvent ajouter des tags aux éléments. Je souhaite que l'utilisateur actuel puisse supprimer des balises, mais uniquement pour les balises qui ont été ajoutées à cet élément spécifique par l'utilisateur actuel. Je veux le faire par ajax. Mon code pour faire la liste des balises pour la vue ressemble à ceci:Comment autoriser l'utilisateur actuel à supprimer des balises possédées avec acts-as-taggable-on
<div id="tags">Tags:
<% @item.all_tags_list.each do |t| %>
<span class="tag-container">
<%= link_to t, tag_path(t) %>
<% if @item.tags_from(current_user).include?(t) %>
<span>
<%= link_to "×", '#' %>
</span>
<% end %>
</span>
<% end %>
</div>
La ligne générée ressemble à quelque chose comme: Tags: tag1 tag2 tag3 x
. Dans ce cas, seul tag3 a été ajouté à la page de l'élément en cours par l'utilisateur actuel. Je souhaite que l'utilisateur actuel puisse cliquer sur le x et supprimer tag3 de l'élément. Si tag2 a également été ajouté par l'utilisateur actuel, il ressemblerait à ceci: Tags: tag1 tag2 x tag3 x
.
Comment est-ce que je configure la route et la méthode pour les items_controller pour accomplir ceci? Je crois qu'il finirait par être quelque chose comme:
def remove_tag
@item = Item.find_by_id(params[:id])
tag = ????????
@item.all_tags_list.remove(tag)
@item.save
respond_to do |format|
format.js
end
end
mais comment puis-je dire le contrôleur qui balise que je veux supprimer en cliquant sur le x, et comment pourrais-je créer l'itinéraire. Il y aura probablement plusieurs étiquettes avec un x à côté d'elles sur une page donnée.
Pas votre réponse complète, mais si vous voulez que le current_user ne supprime que ses balises quelque chose comme ceci: 'tag = current_user.tags.find (params [: id])' de sorte que vous devez l'utiliser uniquement pour les utilisateurs actuels Mots clés. –
Je ne pense pas que c'est correct. Je souhaite supprimer les balises de l'élément appartenant à l'utilisateur actuel. Votre ligne de code trouverait des balises sur l'utilisateur qui dans mon cas il n'y en a pas. – user4584963
Le concept est le même. Puis étendez la partie 'current_user.items.find (...)'. –