J'utilise friendly_id pour générer des URL sensibles pour une chaîne de salons de coiffure.Attribut manquant: slug, lors de l'utilisation de friendly_id dans Rails
Cependant, je reçois cette erreur sur la page d'accueil, où j'ai des liens vers quelques-uns des salons:
ActiveModel::MissingAttributeError in Pages#home
missing attribute: slug
La ligne incriminée est celle-ci, en home.html.haml:
= link_to salon, data: { no_turbolink: true } do
Ceci est le fichier entier:
- content_for :header do
.header-text
%h1 Book your treatment online here
.sub-header
Choose a treatment from our superior quality selection
%searchtreatment
.container-fluid.stripe-1
.container.m-t-1
.row
.col-xs-12.m-t-3.m-b-1.text-center
%h2.main-header Treatments
.row.padding-md-up
- @treatments.each do |treatment|
.col-md-4.m-b-2
%a(href="/search#?area=New England&main_category=#{treatment.gsub('&', '%26')}" data-no-turbolink='true')
.displaybox
= image_or_placeholder("treatments/#{treatment}.jpg")
.title
= treatment
.container
%hr
.container-fluid.stripe-2
.container.m-t-1
.row
.col-xs-12.m-t-3.m-b-1.text-center
%h2.main-header Most popular salons
.row.padding-md-up
- @salons.each do |salon|
.col-md-4.m-b-3
= link_to salon, data: { no_turbolink: true } do
.displaybox
= image_tag salon.picture
.title
= salon.name
%br
%br
%br
%br
Il n'y a que trois salons dans ma base de données de test, et ils ont tous limace s quand je les regarde dans la console. J'ai essayé de placer leurs limaces à nil
afin de régénérer les limaces, mais aucun résultat.
J'ai mis en place friendly_id normalement, en ajoutant ces deux lignes salon.rb:
extend FriendlyId
friendly_id :slug_candidates, use: :slugged
Dois-je obtenir friendly_id pour générer la limace plus tôt d'une certaine façon?
J'ai essayé des variantes de la ligne fautive; par exemple:
= link_to 'salon', salon_path(salon.to_param), data: { no_turbolink: true } do
et:
= link_to 'salon', salon_path(salon), data: { no_turbolink: true } do
Après avoir ajouté le slug à 'Salon', avez-vous exécuté' Salon.find_each (&: save) 'sur les rails c? –