2010-08-13 4 views
0

Je rencontre un problème étrange avec un collection_select que j'utilise dans une vue de profil d'édition dans mon application rails. La base de données IS est mise à jour avec la valeur correcte, mais la valeur par défaut n'est pas sélectionnée pour la zone de sélection lorsque l'utilisateur va modifier son profil. Je ne peux pas obtenir: include_blank => true ou a: prompt => true pour travailler.Collection_Select Valeur par défaut non définie

Voici le code

Modifier Voir:

<%= render :partial => 'player_form' %> 

_player_form partielle:

<% form_for @user do |f| %> 
    <p> 
     <%= f.label :course_id %><br/> 
     <%= f.collection_select(:course_id, Course.all, :id, :name, {:prompt => "No Home Course"}) %> 
    </p> 
<% end %> 

HTML généré:

<p> 
    <label for="user_course_id">Course</label><br/> 
<select id="user_course_id" name="user[course_id]"> 
     <option value="1">Bedford Springs</option> 
     <option value="2">Down River</option> 
     <option value="3">King Valley </option> 
     <option value="4">Test</option></select> 
</p> 

Parce que je me sers cancan d'autorisation J'ai une action d'édition vide dans mon contrôleur depuis cancan automatiquement initialise

@user = User.find(params[:id]) 

J'ai essayé d'ajouter cette ligne à modifier et il n'affecte pas rien. Aussi la chose la plus étrange à propos de ce problème est que tous les autres champs dans le formulaire d'édition partiel sont remplis avec les valeurs actuelles correctes de la base de données. En outre, la table Users possède la colonne course_id qui est la clé étrangère pour la table Courses et j'ai vérifié l'association dans la console et elle renvoie le bon ID de cours. Les associations sont configurées correctement parce que j'ai, Par conséquent, je crois que j'ai un problème avec la syntaxe de mon collection_select mais je ne suis pas sûr de ce que c'est.

J'apprécie toute aide.

Merci.

+0

De même, dans la console @ user.course_id renvoie la valeur correcte. Je peux aussi afficher @ user.course_id dans la vue. – dbaugh

Répondre

2

J'ai défini le cours comme un varchar au lieu d'un int dans la base de données pour une raison ou une autre. Le changer aussi un int fixé le problème.

Questions connexes