2010-09-03 15 views
1

Vous pouvez jeter un oeil à l'application que je fais référence à: http://github.com/585connor/QAProblèmes avec les relations

Alors, je l'ai construit cette question & app réponse ... un peu. Je peux obtenir les réponses de à être énumérées sur leurs questions respectives mais je ne peux pas figurer dehors comment obtenir l'information d'utilisateur pour être montrée sur ces questions/réponses. Par exemple, je voudrais mettre le nom d'utilisateur à côté de chaque réponse et le nom d'utilisateur à côté de chaque question. En outre, lors de la visualisation de l'action de show de le contrôleur des utilisateurs, je voudrais être en mesure de voir une liste de ces questions et réponses de l'utilisateur particulier.

Il y a trois tables: questions, réponses et utilisateurs. Pouvez-vous prendre un regarder le référentiel github et essayer de me diriger dans la bonne direction pour quelles étapes je devrais/concepts que je devrais apprendre afin d'atteindre ce que je suis en train de faire?

+1

Vous pouvez renommer le titre de cette question. Ma première réaction a été "Ceci est un site web de programmation, pas un site de psychologie!". –

Répondre

1

Becase vous avez un

belongs_to :user 

dans votre question et le modèle de réponse, vous pouvez accéder au modèle d'utilisateur associé en appelant .user sur une question ou un objet réponse:

# controller 
@question = Question.find :first 

# view 
<%= @question.user.name %> 

Accès à la les questions et réponses de l'utilisateur sont similaires:

# controller 
@user = User.find :first 

# view 
<% @user.questions.each do |question| %> 
    <%= question.title %> 
<% end %> 
+0

Merci, dois-je coller @question = Question.find: d'abord dans l'action 'show' afin qu'il remplace le courant @question = Question.find (params [: id]) ? Que signifie le code ".find: first"? – 585connor

+0

Non c'est juste un exemple. .find: obtient d'abord le premier enregistrement de la base de données. Vous pouvez laisser l'action show dans le contrôleur tel quel et accéder à l'utilisateur avec @ question.user dans la vue. –

+0

Hmm, ne fonctionne pas. Ok, donc je mets <% = h @ question.user.login%> (cela devrait montrer le nom d'utilisateur de l'utilisateur) dans la vue 'show' pour une question et j'obtiens une erreur qui dit "méthode indéfinie 'login pour nil: NilClass ". Une idée de ce qui aurait pu mal tourner? – 585connor