2012-04-10 9 views
-1

S'il vous plaît Im essayant de créer une application où je peux poster comme Twitter, mais je les utilisateurs nom à être affichés sous leurs postes respectifsAssociation des utilisateurs et Post

Mon Post_controller ressemble à ceci

def index 
    @posts = Post.all(:order => "created_at DESC") 
    @users = User.find(:all) 
    #@user_id = current_user.find(params[:id]) 

    respond_to do |format| 
     format.html 
    end 
end 



def create 
    @post = current_user.posts.create(:message => params[:message]) 
    @user.id = current_user.username 
end 

les modèles ont l'association correcte et les tables ont User_id comme primaire sur la table User et Foreign sur la table des messages, comment puis-je créer une méthode pour que mon index affiche le message et le nom?

Répondre

1

hey d'abord supprimer toutes les données de votre table ....

puis redémarrez votre serveur alors il ne sera jamais montrer que l'erreur

1

vous pourriez le faire dans l'index.htm l.erb

<% @posts.each do |p| %> 
    <%= p.id %> 
    <%= p.text %> 
    <%= p.user.name %> 
<% end %> 

pour afficher le message et l'utilisateur correspondant.

+0

je reçois l'erreur Nomethod Post # Index, mais je nom en tant qu'attribut dans la table utilisateur –

+0

montrez-nous le code des deux classes de modèle et vos colonnes de la db – p0rter

+0

ici est 'create_table" posts ",: force => true do | t | t.text "message" t.datetime "created_at",: null => false t.datetime "updated_at",: null => false t.integer "user_id" fin create_table "utilisateurs",: force => vrai do | t | t.string "nom d'utilisateur" t.string "email" t.string "password_hash" t.string "password_salt" t.datetime "created_at",: null => false t.datetime "updated_at",: null => false end' 'Post.rb a - appartient à: user' tandis que User.rb a - has_many: utilisateur –

Questions connexes