sql >> Database teknologi >  >> RDS >> PostgreSQL

Nye data vedvarer ikke til Rails-array-kolonnen på Postgres

Jeg formoder, at ActiveRecord ikke bemærker, at dine friends array er ændret, fordi den underliggende array-reference ikke ændres, når du:

self.friends.push(target)

Det vil ændre indholdet af arrayet, men selve arrayet vil stadig være det samme array. Jeg ved, at dette problem dukker op med postgres_ext perlen i Rails3 og givet dette problem:

String-attribut er ikke markeret som beskidt, når den ændres med <<

Jeg forventer, at Rails4 opfører sig på samme måde.

Løsningen ville være at oprette et nyt array i stedet for at prøve at ændre arrayet på stedet:

update_attributes friends: self.friends + [ target ]

Der er mange måder at oprette et nyt array på, mens du tilføjer et element til et eksisterende array, brug den du kan lide.



  1. Generer tilfældig int-værdi fra 3 til 6

  2. vælg count(*) fra tabellen over mysql i php

  3. Hvordan kan jeg søge i alle kolonner i en tabel?

  4. Kan ikke masseindlæse. Operativsystem fejlkode 5 (Adgang nægtet.)