2016-06-15 5 views
0

Ich habe friendly_id angewendet und arbeiten, aber jetzt nicht ich möchte es einen Butzen hinzuzufügen, wenn der key_type4 istHaben friendly_id Schnecken nur angewendet, wenn die Bedingung x

aktuell I

extend FriendlyId 
friendly_id :value, :use => :scoped, :scope => [:category_item_key, :category_item] 

und müde haben die Anwendung ein if-Anweisung im Modell wie unten

if :key_type == 4 
    else 
    extend FriendlyId 
    friendly_id :value, :use => :scoped, :scope => [:category_item_key, :category_item] 
    end 

Aber die if-Anweisung scheint nichts zu tun. Ich dachte mir, dass es in friendly_id einen eingebauten Weg geben könnte, damit dies getan werden kann (konnte nichts in den Dokumenten sehen). Oder vielleicht ist es ein anderer Weg, um das zu erreichen, also wird es keinen Slug hinzufügen, wenn der key_type gleich 4 ist?

Antwort

0

Wie wäre es so etwas wie:

before_create :add_slug_if_needed 

def add_slug_if_needed 
    self.slug = 'hey_look_a_slug' unless key_type == 4 
end 

Ich schlage diese anstelle eines FriendlyId Ansatz, weil bedingt Module erstreckt wie eine Dose Würmer scheint!

Verwandte Themen