Ich habe folgend in meinem UserscontrollerWie mache ich eine "if-Anweisung" für Rails has_many Association?
def show
@user = User.find(params[:id])
if current_user.id != params[:id] #! need to fix this
@answer = Answer.new
else
@answer = Answer.find(params[:id])
end
wo jeder Benutzer has_many Antworten durch ein Quiz-Modell. Wie kann ich die if-Anweisung schreiben? Wenn die Antworten für den betreffenden Benutzer leer sind, springt er zum Erstellen eines neuen Quiz? (und wenn nicht, um die Informationen anzuzeigen).
Nun, ich bin ein wenig unklar, was die Details Ihrer Einrichtung angeht - es gibt keine Quiz- oder Antwortinformationen - aber wenn Sie überprüfen möchten, ob ein Benutzer ein bestimmtes Quiz angenommen hat, warum erstellen Sie keine Cross-Join-Tabelle für Benutzer und Quizzes und es wird nur eingerichtet, wenn sie das Quiz nehmen (oder Sie können es komplizierter machen als das, wenn Sie wollten). Mein Glaube ist, dass Ihre Logik, auf den Antworten zu basieren, falsch ist, und Sie sollten stattdessen auf dem Quiz basieren? Aber ich mache Vermutungen von Dingen, die man nicht sieht (oder präsentiert) – MageeWorld
Während viele Leute einen Stich im Dunkeln machen könnten, könnte es ein wenig hilfreicher sein, ein bisschen mehr Informationen zu geben, zum Beispiel wenn du sagst, dass ein Benutzer hat viele Antworten durch ein Quizzes-Modell, beziehen Sie sich auf eine tatsächliche 'has_many: Antworten, durch:: Quiz' Relation, oder einfach nur, dass ein Benutzer has_many Quizzes, und das Quiz has_many Antworten hat? vielleicht auch deinen models code? –