2010-05-18 3 views
0

Je nombre de listes de sélection dans mon application rails comme celui-ci:Rails Sélectionner la liste Reverts to top?

<li>Company<span><%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]} %></span></li> 

Ils travaillent tous bien, sauf - parfois si vous allez à la vue de modifier, la liste de sélection revient à l'élément supérieur, pas l'élément cela a été choisi lors de la création. Ainsi, si vous accédez à une vue d'édition, puis cliquez sur mettre à jour sans apporter de modifications, les listes sont définies par défaut sur l'élément supérieur, même si vous ne les avez pas touchées.

Y a-t-il un moyen de contourner cela?

Merci,

Danny

EDIT:

<% form_for (@kase), :html => { :multipart => true } do |f| %> 


<li>Appointed Surveyor<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => @kase.appointedsurveyor_id} %></span></li> 
    <li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => @kase.surveyorperson_id} %></span></li> 

J'ai essayé ci-dessus, mais malheureusement, il semble toujours revenir à la valeur par défaut.

Je suis bloqué sur ce point, je ne trouve aucun tutoriel, etc.

EDIT 2:

<li>Appointed Surveyor<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => (@kase.appointedsurveyor_id rescue "")} %></span></li> 
    <li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => (@kase.surveyorperson_id rescue "")} %></span></li> 
+1

veuillez poster: 1. Le code qui génère le formulaire ('form_for ..') et 2. le code qui instancie la société (dans le contrôleur) –

+0

êtes-vous sûr '@ kase.appointedsurveyor_id' et' @kase. surveyorperson_id' ne sont pas vides? –

+0

Positif, mais dois-je utiliser le même code (celui ci-dessus) pour les nouvelles vues et éditer? Ou juste l'édition? – dannymcc

Répondre

0

Il s'avère que j'avais les champs dans la base de données comme chaînes non entiers.

2

Vous pourriez être en mesure de vous assurer de celui-ci avec le troisième paramètre, essayez le code suivant:

<li>Company<span><%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => @your_instance_name.company_id} %></span></li> 

Assurez-vous que vous remplacez @your_instance_name la variable d'instance que vous utilisez à la balise form_for.

Espérons que cela aide.

+0

Salut, j'ai essayé votre suggestion mais cela n'a pas l'air de marcher. J'ai collé le code que j'ai essayé dans ma question au cas où je me serais trompé. – dannymcc

Questions connexes