PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Новите данни не се запазват в колоната на Rails масив на Postgres

Подозирам, че ActiveRecord не забелязва, че вашите friends масивът се е променил, защото основният референтен масив не се променя, когато:

self.friends.push(target)

Това ще промени съдържанието на масива, но самият масив все още ще бъде същият масив. Знам, че този проблем се появява с скъпоценния камък postgres_ext в Rails3 и предвид този проблем:

Атрибутът низ не е маркиран като мръсен, когато се промени с <<

Очаквам Rails4 да се държи по същия начин.

Решението би било да създадете нов масив, вместо да се опитвате да модифицирате масива на място:

update_attributes friends: self.friends + [ target ]

Има много начини да създадете нов масив, докато добавяте елемент към съществуващ масив, използвайте който искате.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конкатенира низове от низ поле в PostgreSQL заявка „групиране по“?

  2. Как да конвертирате низ в дата в PostgreSQL

  3. Как мога да реша проблема с удостоверяването на Postgresql SCRAM?

  4. Как да групирате по месеци в PostgreSQL

  5. Активиране на поддръжка на PostgreSQL в PHP на Mac OS X