2016-12-20 7 views
0

friendly_idを使用して、美容院の連鎖のための合理的なURLを生成しています。属性がありません:slug、Railsでfriendly_idを使用している場合

しかし、私はサロンの一部へのリンクを持っているホームページ上でこのエラーが発生します。

ActiveModel::MissingAttributeError in Pages#home 

missing attribute: slug 

問題のある行がhome.html.hamlで、このいずれかになります。

= link_to salon, data: { no_turbolink: true } do 

これは、ファイル全体です:

- 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 

あり、私のテストデータベース内の唯一の3サロンがあり、それら全てがスラグを持っています私はコンソールでそれらを見るときに。私はスラグを再生するためにスラグをnilに設定しようとしましたが、結果はありません。

extend FriendlyId 
    friendly_id :slug_candidates, use: :slugged 

は、私が以前に何らかの方法でスラグを生成するfriendly_id取得する必要がありますか:

私はsalon.rbでこれらの2行を追加することで、通常friendly_idを設定していますか?

違反行のバリエーションを試しました。

= link_to 'salon', salon_path(salon.to_param), data: { no_turbolink: true } do 

と::例えば

= link_to 'salon', salon_path(salon), data: { no_turbolink: true } do 
+0

slugを 'Salon'に追加した後、' Salon.find_each(&:save) 'をレールCで実行しましたか? –

答えて

0

それは右の構文があったが、私が持っていたものにうるさく近い

= link_to salon_path(salon), data: { no_turbolink: true } do 

を。