Undefined method `xxx' et radio_button

Je bataille depuis ce matin sur la vue et la validation!

J’ai une table Applications reliés à 3 autres tables par une table de
jointure (de 4 niveaux donc) grace a “has_manys :through”

J’ai un problème très bizarre avec le formulaire de création d’une
application qui comprend :

  • des radio_button pour le type d’application
  • des radio_button pour son role
  • un select à choix multiple pour les serveurs

La bizarrerie se passe avec les radio_button des roles.
Dans AppsController < AC :: new, j’ai rajouté 3 lignes

@roles = Role.find( :all, :order => "name" ) @servers = Server.find( :all, :order => "name" ) @types = Type.find( :all, :order => "name" )

que j’utilise dans la vue du formulaire :

<% for role in @roles %> <%= radio_button 'app', 'role', role.id %><%= role.name %> <% end %>

et idem pour les types (qui marche très bien).
J’ai une erreur “undefined method `role’” causé par le deuxième
paramètre ‘role’ (qui définie la méthode appelée si j’ai bien compris).

Ce que je trouve bizarre c’est surtout que les autres marchent!
Du coup, j’utilise la fonction radio_button_tag.

Je ne comprend pas en quoi consiste ce deuxième paramètre…

Une idée quelqu’un?

Salut Arnaud,

role est l’objet, id et name les méthodes donc quand la définition de
l’API indique :
radio_button(object_name, method, tag_value, options = {})

tu dois mettre un truc du genre (pas testé) :
<%= radio_button ‘role’, ‘id’, ‘role.name’ %>

bon courage