2010-08-09 1 views
0

Je suis sur le point de trouver comment appeler une fonction avec un membre de la collection que je veux lire dans une option_groups_from_collection_for_select.Rails: comment un membre de la collection est-il appelé? Option_groups_from_collection_for_select

L'échantillon est comme suit:

option_groups_from_collection_for_select(@categories, :children, :name, :id, :name, 3)

Dans mon code je remplacer la balise de nom avec une fonction qui calcule la bonne traduction. Lorsque j'écris cette fonction dans le modèle, il arrive une erreur qu'il ne trouve pas ce nom de méthode. Si je l'ai mis au contrôleur d'aide, je n'ai pas les informations dont categorie devrait se traduire ...

Le manuel écrit sur cette méthode d'étiquette:

group_label_method: Le nom d'une méthode qui, lorsqu'il est appelé sur un membre de la collection, renvoie une chaîne à utilisée en tant qu'attribut d'étiquette pour son étiquette <optgroup>.

Où dois-je écrire ceci?

Merci Markus

Répondre

1

Je suppose que vous appelez la fonction comme ceci:

option_groups_from_collection_for_select(@categories, :children, my_translate_function, :id, :name, 3) 

Cela ne fonctionne pas parce que "my_translate_function" n'est pas défini.

vous devez mettre un colon devant le nom de la fonction comme ceci:

option_groups_from_collection_for_select(@categories, :children, :my_translate_function, :id, :name, 3) 
rails

ensuite utiliser la méthode d'envoi pour appeler « my_translate_function » sur votre objet.

+0

Parfait, c'était tout! Merci beaucoup! – Markus

Questions connexes