2010-09-24 5 views
0

J'utilise le plugin friendly_id pour générer des URL favorables au référencement pour certains de mes modèles.Attacher des méthodes conditionnelles (ou des attributs?) À un modèle de rails

Actuellement, j'ai un modèle avec deux attributs: name et display_name. Pour l'essentiel, display_name est préféré, mais s'il est vide, le modèle revient au nom. Friendly_id a besoin d'un terrain pour fonder l'URL hors de:

Class Market < ActiveRecord::Base 
    has_friendly_id :name 
end 

Comment puis-je mettre en œuvre quelque chose qui ressemble (logiquement) comme ceci:

Class Market < ActiveRecord::Base 
    if self.display_name 
    has_friendly_id :display_name 
    else 
    has_friendly_id :name 
    end 
end 

Merci!

Répondre

2

Peut-être que quelque chose comme ça?

Class Market < ActiveRecord::Base 
    has_friendly_id :friendly_name 

    def friendly_name 
    self.display_name || self.name 
    end 
end 
+0

Battez-moi en millisecondes. Exactement la même réponse! +1 Plus de détails ici: http://norman.github.com/friendly_id/file.Guide.html#using_a_custom_method_to_generate_the_slug_text – Shadwell

Questions connexes