2016-07-27 10 views

Antwort

0

Aus der Tatsache, dass Sie Rails getaggt und aufgelistet haben, was wie eine Tabellenstruktur klingt, werde ich davon ausgehen, dass Sie Rails ORM ActiveRecord mit postgresql Datenbank richtig verwenden? Wenn dies der Fall ist, können Sie auf Ihre Bewertungen zugreifen, indem Sie den Befehl Movie.pluck(:ratings) verwenden. Dies sollte alle Einsätze in Ihrer Bewertungsspalte für Ihre Movies-Tabelle erfassen und ein Array von ihnen zurückgeben. Sie müssen dies in einer Ihrer MoviesController-Aktionen implementieren.

+0

Ja. Das hat tatsächlich funktioniert, aber ich habe dieses Ergebnis erhalten ["G", "R", "R", "PG-13", "PG-13", "R", "G", "PG", "PG", " G "] .. aber es ist nicht beabsichtigt, eine bestimmte Bewertung zweimal oder öfter zu wiederholen. Wie kann ich darüber gehen? – SammieNeutron

+0

Ich stelle mir vor, 'Movie.pluck (: ratings) .uniq' sollte funktionieren, so dass es Ihr Array auf einzigartige Elemente reduziert. –

+0

Oh ja! Hatte das richtig! – SammieNeutron

0

Wenn Sie Bewertungen in einem Array gespeichert haben, müssten Sie eine Funktion schreiben, um alle folgenden Elemente zu trennen: "['']". Es wäre sehr einfach, ein Enum zu erstellen oder dir eine ID zu geben. Wenn du also einen Film veröffentlichst und ihm eine Bewertung geben willst, kannst du ihn aufrufen, indem du seine ID oder seinen Enum-Wert anrufst.

3

Um Bewertungen der Filme in einem einzigen Array zu erhalten, wie Sie Sie einfach erwähnt verwenden:

Movie.pluck(:ratings) #assuming column name ratings 

Dies wird wie Ergebnisse gibt

['G','PG','PG-13','R'] 

Wenn Sie auch, dass der Film wissen wollen, hat Welche Bewertungen dann können Sie den Code zu ändern:

Movie.pluck(:id, :ratings) 

Sein Ergebnis wird einige sein Ding wie:

[[1,"PG"], [2,"PG-13"], [3,"G"]] 

Weitere Informationen

http://apidock.com/rails/ActiveRecord/Calculations/pluck

Verwandte Themen