Ich lerne derzeit Schienen und habe ein Problem, wenn ich versuche, einen Kommentar hinzuzufügen. Wenn Benutzer A unter dem Beitrag von Benutzer B kommentiert, wird der Kommentar unter allen Posts von Benutzer A angezeigt und nicht unter dem spezifischen Beitrag von Benutzer B.ROR: Hinzufügen von Kommentaren zum Post-Problem
Ich denke, dass das Problem eher mit der Ansichtsseite als mit dem Kommentar zu tun hat in der Datenbank gespeichert werden.
comment.rb
class Comment < ApplicationRecord
belongs_to :user
belongs_to :pin
end
comments.controller.rb
class CommentsController < ApplicationController
before_action :set_pin
def create
@comment = @pin.user.comments.build(comment_params)
@comment.user_id = current_user.id
if @comment.save
redirect_to root_path
else
render root_path
end
end
private
def comment_params
params.require(:comment).permit(:content)
end
def set_pin
@pin = Pin.find(params[:pin_id])
end
end
index.html.erb
- if pin.user.comments
- pin.user.comments.each do |comment|
.commentContainer
%h4.desc
%strong
=link_to (pin.user.Username), user_path(pin.user_id)
= comment.content
Beliebig Ideen, wie das zu beheben ist?
BEARBEITEN.
Kommentare Tabelle:
0|id|INTEGER|1||1
1|user_id|integer|0||0
2|pin_id|integer|0||0
3|content|text|0||0
4|created_at|datetime|1||0
5|updated_at|datetime|1||0
sqlite> select * from comments;
1|15||Nice shot!|2017-02-07 16:13:06.707372|2017-02-07 16:13:06.707372
2|15||Cool pic|2017-02-07 16:25:27.780830|2017-02-07 16:25:27.780830
3|14||test|2017-02-08 14:08:17.397782|2017-02-08 14:08:17.397782
Wenn ich versuche, dass ich eine nicht definierte Methode Fehler: nicht definierte Methode Kommentare zu # Ein weiterer Neuling Fehler, aber ich don Ich weiß nicht, was den Fehler verursacht. Warum funktioniert es, wenn ich 'pin.user.comments' einsetze, aber nicht wenn ich' pin.comments' verwende? –
BigL
Können Sie überprüfen, ob die PIN-ID beim Speichern des Kommentars gespeichert wird? Wie gibt es Daten in der Spalte db? –
Ja, ich werde die ursprüngliche Frage bearbeiten, um dies zu zeigen – BigL