sql >> Databáze >  >> RDS >> PostgreSQL

Nová data nezůstávají ve sloupci pole Rails na Postgresu

Mám podezření, že ActiveRecord si toho nevšiml vašich friends pole se změnilo, protože základní odkaz na pole se nezmění, když:

self.friends.push(target)

Tím se změní obsah pole, ale samotné pole bude stále stejné pole. Vím, že tento problém se objevuje s drahokamem postgres_ext v Rails3 a vzhledem k tomuto problému:

Atribut řetězce není označen jako nečistý, když se změní pomocí <<

Očekával bych, že se Rails4 bude chovat stejně.

Řešením by bylo vytvořit nové pole, spíše než se snažit pole upravit na místě:

update_attributes friends: self.friends + [ target ]

Existuje mnoho způsobů, jak vytvořit nové pole a zároveň přidat prvek do existujícího pole, použijte kterýkoli z nich.



  1. Oracle Hledat ve všech tabulkách ve všech sloupcích řetězec

  2. Změňte režim podezření z databáze SQL na normální režim pomocí dotazu

  3. Jak funguje funkce Sign() v PostgreSQL

  4. 3 způsoby, jak vypsat všechny uložené procedury v databázi PostgreSQL