Quando provo a farerastrello metodo non definito `campi per nil: NilClass su seme di database
rake db:reset
o
rake db:drop
rake db:create
rake db:schema:load
rake db:seed
ho casualmente ottenere un NoMethodError: undefined method 'fields' for nil:NilClass
quando si verifica il seme. Eccone uno:
[1m[35m (186.0ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20130318105449')
[1m[36m (187.0ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20130319154146')[0m
[1m[35m (189.0ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20130322132730')
[1m[36m (104.0ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20130322142814')[0m
NoMethodError: undefined method `fields' for nil:NilClass: SELECT COUNT(*)
FROM pg_class c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind in ('v','r')
AND c.relname = 'schema_migrations'
AND n.nspname = ANY (current_schemas(false))
Ecco un altro:
[1m[35m (39.0ms)[0m BEGIN
[1m[36mCategory Exists (107.0ms)[0m [1mSELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat1' LIMIT 1[0m
[1m[35mSQL (124.0ms)[0m INSERT INTO "categories" ("category_id", "created_at", "label", "hash", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["category_id", 58], ["created_at", Mon, 25 Mar 2013 15:07:53 CET +01:00], ["label", "Cat1"], ["hash", "cat1"], ["updated_at", Mon, 25 Mar 2013 15:07:53 CET +01:00]]
[1m[36m (117.0ms)[0m [1mCOMMIT[0m
[1m[35m (162.0ms)[0m BEGIN
[1m[36mCategory Exists (136.0ms)[0m [1mSELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat2' LIMIT 1[0m
[1m[35mSQL (104.0ms)[0m INSERT INTO "categories" ("created_at", "label", "hash", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", Mon, 25 Mar 2013 15:07:53 CET +01:00], ["label", "Cat2"], ["hash", "cat2"], ["updated_at", Mon, 25 Mar 2013 15:07:53 CET +01:00]]
[1m[36m (99.0ms)[0m [1mCOMMIT[0m
[1m[35m (108.0ms)[0m BEGIN
[1m[36mCategory Exists (173.0ms)[0m [1mSELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat3' LIMIT 1[0m
NoMethodError: undefined method `fields' for nil:NilClass: SELECT 1 AS one FROM "categories" WHERE "categories"."hash" = 'cat3' LIMIT 1
Io davvero non capisco dove questo può essere provenienti da. A volte non ho nemmeno un errore e tutto è perfettamente inserito. Dopo alcuni test sembra che dipenda dalla velocità di inserimento. Se eseguo questo dal mio server di sviluppo, ha quasi sempre successo. Se eseguo questo in modo remoto dal mio computer, quasi sempre fallisce.
Sto usando Ruby 1.9.3 localmente e ruby 2 sul mio server di sviluppo. Su entrambi sto usando rails4 (edge) e il mio driver è postgresql (pg, nessuna versione specificata)
Generalmente si dovrebbe aggiungere questo come commento. Vedendo questo è il tuo primo post, lo inviterò in modo tale da ottenere la possibilità di aggiungere commenti. Benvenuto su Stackoverflow! MrGreen –
Ah, grazie per il testa a testa. Bello sapere l'etichetta. Per quanto riguarda il problema, sono stato in grado di ricreare il bug su un progetto di test usando (1..10000) .each {Foobar.first}, sulla stessa revisione che il mio progetto stava usando. Ho aggiornato il mio progetto di test alla revisione 1a838ccda4a31bb023985f6c977e6bc3e238cda9 e il problema è andato via. Sono fiducioso quando aggiorno il mio progetto alla stessa revisione il problema dovrebbe essere risolto. –
Davvero! L'ultimo aggiornamento sembra aver risolto questo problema. – Crystark