2016-05-28 5 views
2

Ich baue eine Rails-Anwendung und ich bleibe stecken, wenn ich Slug für einen Artikel mit dem zweiten definierten Gebietsschema erzeuge.
Für das Hauptgebietsschema (Französisch), es überprüft, ob ein Artikel bereits den Titel und wenn es der Fall eine Ganzzahl (ID) am Ende hinzufügen, aber für das zweite Gebietsschema (Englisch) ist es nur generieren den Slug ohne Prüfung, ob Artikel existiert (was mir Doppelschnecken gibt).Rails :: Generiere Slugs mit FriendlyId, Globalize und slug_candidates

Hier ist mein Modell:

class Post < ActiveRecord::Base 
    translates :title, :slug, :content, fallbacks_for_empty_translations: true 
    active_admin_translates :title, :slug, :content, fallbacks_for_empty_translations: true 

    extend FriendlyId 
    friendly_id :slug_candidates, use: [:slugged, :globalize, :finders] 

    private 

    def slug_candidates 
    [:title, [:title, :deduced_id]] # works for main locale but not others 
    end 

    def deduced_id 
    self.class.where(title: title).count + 1 
    end 
end 

Wie kann ich die ID hinzugefügt bekommen für sekundäre locales slug wenn Artikel bereits mit dem gleichen Titel existiert?

Danke für Ihre Hilfe!

Mein Projekt:

  • Rails 4.2.6
  • ActiveAdmin 1.0.0.pre2
  • globalisieren 5.0.1
  • FriendlyId 5.1.0
  • 1,0 FriendlyId-globalisieren. 0.alpha2

Antwort

1

ich endlich Lass es funktionieren, indem du die Methode slug_candidates wie folgt aktualisierst:

def slug_candidates 
    [[:title, :deduced_id]] 
end