2010-09-30 4 views
1

J'essaie de mettre à jour un attribut de chaîne dans la base de données.Mise à jour d'un attribut de chaîne dans les rails

J'ai essayé d'utiliser update_attribute mais cela ne fonctionne pas. Cela fonctionne pour les attributs entiers mais pas pour les attributs String.

Comment résoudre ce problème?

EDIT

exemple de code:

@post = Post.find(params[:post_id]) 
@comment = @post.comments.create!(params[:comment]) 
@comment.update_attribute(:commenter,User.find_by_id(session[:user_id]).name) 
+1

Vous faites quelque chose de mal. Cette réponse est aussi spécifique que votre question. –

+0

Pourriez-vous publier un exemple de code? – BaroqueBobcat

+0

a ajouté le code au message original ... – Jayaram

Répondre

3

Tout d'abord, est-il une raison quelconque vous enregistrez le nom comme une chaîne dans la base de données? Normalement, vous passez par l'association pour obtenir le nom.

@comment.user.name 

Je voudrais vraiment vous suggérons d'ajouter un user_id à la table des commentaires, puis utilisez:

@comment.user = User.find_by_id(session[:user_id]) 

ou

@comment.update_attribute(:user_id, session[:user_id]) 

mettre à jour le commentateur.

Questions connexes