J'utilise actuellement:Ruby on de find "Rails question
@user = User.find(params[:id])
@posts = Post.find(:all, :conditions => ["user_id = ?", @user.id])
@comments = Comment.find(:all, :conditions => ["user_id = ?", @user.id])
qui identifie l'utilisateur et répertorie tous leurs commentaires qu'ils ont fait. Toutefois, je veux définir une variable locale à utiliser dans le modèle _comment.html.erb. Je veux que la variable lise le nom du poste situé dans la colonne 'nom' de la table des postes.
J'ai essayé de faire:
@post_id = @comments.post_id
@post_name = @post_id.name
Mais il a montré une erreur de tableau (car @comments répertorie l'ensemble des commentaires des utilisateurs). Je dois trouver un moyen de trouver le post_id pour CHAQUE commentaire. Pourtant quand j'essaye d'employer quelque chose comme
@post_id = @comments.each.post_id
Il montre une erreur parce qu'il ne reconnaît pas «post_id» comme méthode. Je veux qu'il sorte tout ce qui est dans la colonne post_id pour CHAQUE commentaire.
Et pour répondre à la question elle-même, vous pouvez faire « commentaire .post.name "dans votre modèle. –
Vous ne pouvez faire comment.post.name que si vous avez configuré les associations belongs_to et has_many. Sans cela, même si les tables ont des colonnes post_id et user_id, elles ne sauront toujours pas à qui ou à quoi elles appartiennent à moins qu'elles ne le soient. – AboutRuby
Je peux extraire des données de la colonne 'user_id' dans le tableau Post, mais je n'arrive pas à comprendre comment utiliser ces données 'user_id' pour trouver les données de la colonne 'name' dans la table User. La table User a une colonne 'id' et une colonne 'name'; la colonne 'id' serait exactement la même que la colonne 'user_id' dans la table Post. – hohner