Cette fois, nous avons implémenté la fonction de balise de hachage dans les rails. https://glodia.jp/blog/3936/ J'ai fait référence au site de.
Dessin d'achèvement Si vous ajoutez une balise lors de la mise en vente d'un produit
Vous pouvez vérifier la balise de hachage que vous pouvez suivre le lien au moment de la publication des détails,
Les produits avec le même tag sont alignés à la fin du lien
Méthode de mise en œuvre 1 Les éléments de la table des produits et les balises de la table des balises sont reliés par une table intermédiaire 2 Écrivez une description dans l'assistant pour lier le nom de la balise.
items_helper.rb
def render_with_hashtags(tag_name, tag_id)
tag_name.gsub(/[##][\w\p{Han}Ah-Gae-゚]+/){|word| link_to word, "/item/hashtag/#{word.delete("#")}?tag_id=#{tag_id}"}.html_safe
end
Le premier argument est le nom de la balise et le second argument est l'id de la balise stockée dans la table intermédiaire. En remplaçant url par la méthode gsub et en ajoutant la méthode html_safe, le traitement d'échappement peut être évité et la vue peut être liée sous la forme de "# nom". Dans la description de? Tag_id = # {tag_id}, mettez l'id du tag dans le lien
3 Mise en œuvre du routage
routes.rb
get '/item/hashtag/:name', to: "items#hashtag"
Je pense qu'il est préférable de se nicher dans le contrôleur d'objet
4 Implémentation du contrôleur
items_controller.rb
def hashtag
@tag = Tag.find(params[:tag_id])
@items = @tag.items
end
Passez le tag_id préparé dans le lien en 2 avec les paramètres et recherchez le tag correspondant Mettez le produit avec l'étiquette correspondante dans la variable
5 Implémentez une vue en utilisant @items pour chaque méthode, comme lors de la création d'une liste de publications détaillée
terminé!
Recommended Posts