In meinem Modell Room
habe ich ein Attribut mit dem Namen available_days
, das als Array gespeichert wird.Suchen Sie Datensätze, bei denen die Länge des Arrays gleich ist - Rails 4
Zum Beispiel:
Room.first.available_days
=> ["wed", "thurs", "fri"]
Was ist der beste Weg, um alle Räume, in denen die Größe des Arrays finden gleich 3 ist?
Ich habe versucht, so etwas wie
Room.where('LENGTH(available_days) = ?', 3)
ohne Erfolg.
Update: der Datentyp für available_days
ist eine Zeichenfolge, sondern um ein Array zu speichern, ich bin Serialisierung das Attribut aus meinem Modell:
app/models/room.rb
serialize :available_days
Können Sie das Schema ändern? Die Verwendung von 'serialize' ist fast immer ein schrecklicher Fehler, beginnt schnell und einfach und explodiert dann in deinem Gesicht. –