2013-07-09 14 views
8

Mam model User z niektórymi atrybutami, nazywając je foo i bar. Więc mój model wygląda następująco:Szyny 4: ActiveRecord nie zapisywanie żadnych atrybutów, zapisywanie wartości domyślnych

class User < ActiveRecord::Base 
    attr_accessor :foo, :bar 
end 

Potem wykonaj następujące czynności:

user = User.new 
user.foo = "123" 
user.save! 

A moja dziennika rozwój pokazuje:

INSERT INTO "users" DEFAULT VALUES RETURNING "id" 

Następnie, jeśli pójdę do konsoli Rails i robić User.first Otrzymuję coś takiego:

#<User id: 4, foo: nil, bar: nil> 

Używam PostgreSQL i nie mam problemu z zapisaniem innych modeli w bazie danych, dlaczego mój model User zapisuje wartości domyślne?

Odpowiedz

26

attr_accessor zastępuje atrybuty szyn. Spróbuj go usunąć i powinno działać.

+1

To musi być specyficzne dla poszczególnych postrów. Czy ktoś wie, dlaczego? –

+0

Chciałbym wiedzieć, dlaczego Postgres jest problemem. –

Powiązane problemy