Ich versuche, alle Posts anzuzeigen, die ich vom aktuellen Benutzer mag.So zeigen Sie alle meine Posts, die von Benutzer gemocht werden
Ich benutze Ruby on Rails, und die Edelsteine Devise und "Acts As Votable". Ich habe the Acts As Votable guide verfolgt, kann aber nicht funktionieren.
Ich denke, das ist der Weg zu gehen:
@post.liked_by @user1
@post.downvote_from @user2
ich einen neuen Controller erstellt namens Dashboard:
class DashboardController < ApplicationController
def index
@post = Post.all.liked_by current_user
end
end
Aber wenn ich meine Web laufen bekomme ich:
undefined method `liked_by' for #<Post::ActiveRecord_Relation:0x9aa89b0>
Was kann ich tun?
funktioniert meine Antwort nicht? Ich denke, dass der Edelstein bereits für diese Funktionalität sorgt (laut meiner Antwort), aber ich habe das nicht selbst getestet. Wenn ich recht habe, wäre das ein viel besserer Weg. – Andy
@Andy Der OP hatte Schwierigkeiten beim Abfragen. Der Fehler, auf den ich im ersten Satz meiner Antwort hingewiesen habe, ist, dass er versucht, eine Modellmethode ('miked_by' von' acts_as_votable') für eine Sammlung zu verwenden, nicht das von ihm beabsichtigte Modellobjekt. Dies ist wie der Versuch, 'String # gsub' für ein Array zu verwenden, das Strings enthält - die Methode wird für das falsche Objekt verwendet. Ihre Antwort, obwohl sie möglicherweise für eine * andere * Frage korrekt ist, hat keinen Einfluss auf * diese * Frage. Sie beschreiben, wie Sie gewählte Artikel konfigurieren und abrufen können, und dies ist eindeutig nicht das Problem, nach dem das OP fragt. –
"Ich versuche alle Posts zu zeigen, die ich vom aktuellen Benutzer mag."Das hört sich so an, als würde er versuchen, alle Posts aus der Datenbank abzurufen, die von" current_user "" gemocht "wurden. Ich bin verwirrt, warum er Ihre Antwort als die beste ausgewählt hat - macht noch weniger Sinn, da er das auch gesagt hat Meine Antwort 'funktioniert auch', aber unsere Antworten machen zwei völlig verschiedene Dinge. – Andy