2010-08-11 6 views
0

J'ai un modèle Place qui a à la fois 'city_name' et 'name' comme attributs. Je voudrais définir une méthode personnalisée qui trouve l'endroit dont le nom correspond à city_name pour un autre endroit, par exemple.Méthode personnalisée Rails

Place.name = "toto"
Place.city_name = "baz"

alors Place.find_city donne le dossier où Place.name = "baz". Au moment où j'ai quelque chose le long des lignes de:

def find_city 
    Place.find_by_name("this.place.city_name") 
end 

Vue:

<%= link_to "#{@place.city_name}", place_path(@place.find_city) %> 

Ce code ne jette actuellement pas d'erreurs, mais le lien renvoie simplement l'enregistrement en cours lieu. Cette approche est-elle possible, et si oui, quelle serait la meilleure façon de le faire? Merci d'avance!

Répondre

0

Essayez quelque chose comme ceci (en supposant cette méthode fait partie du modèle)

def find_city 
    Place.find_by_name(city) 
    # param should be either 'city' or 'city_name', 
    # I'm confused by your attribute naming 
end 
+0

Désolé, mon erreur - aurait dû lire Place.city_name = "baz". J'ai mis à jour ma question. – Budgie

+0

@Sonia ça marche? –

+0

brillant, ça marche, merci! – Budgie

Questions connexes