Vra

Ek het 'n probleem waar ActiveRecord.find verkeerde rye teruggee, maar slegs in produksie. Hier is 'n voorbeeldkode:

    <% puts group_hash %>
    <% puts Group.find(group_hash['id'].to_i).inspect %>

watter uitsette: (alle ander eienskappe as 'ID' is afgekap vir leesbaarheid)

    {"id"=>550058, ....}
    #<Group id: 265492, ...>

Hoe kan Group.Find (550058) 'n rekord oplewer met die ID 265492?

Ek glo dat 'n soortgelyke kwessie op enkele plekke gebeur. Dit wil voorkom asof die rekord onlangs gelaai is (in die bogenoemde monster is die groep voorheen in die beheerder gelaai), so ek vermoed die kas.

Die kode het goed gevaar onder Rails3, die oomblik dat Rails4 ontplooi word, gebeur hierdie probleem. Ongelukkig kan ek nie die probleem weergee in enige nie-produksie-omgewings nie (selfs nie op 'n volledige produksie van produksie op 'n aparte gasheer nie, wat na die produksiedatabasis wys), dus is die bedienerbelasting moontlik 'n bydraende faktor.

Enige idees?

Was dit nuttig?

Oplossing

Ek het daarin geslaag om dit op te los. Ek het nog steeds geen idee hoe of waarom bogenoemde kon gebeur het nie (sekerlik m = Model.find(id); (id == m.id) Moet altyd waar wees!), Alhoewel ek nog steeds die kas vermoed, want dit het gelyk of dit net gebeur as die kas voorop was.

Ek het die volgende gedoen, ek glo dat iets in hierdie stappe die kwessie opgelos het:

  1. het my gesnoei Gemfile Die verwydering van 'n paar ongebruikte juwele soos Dalli, en die weergawe van die weergawe beperk, behalwe enkele gevalle om op te dateer.
  2. wedloop bundle update wat baie opgedateerde afhanklikheid tot gevolg het
  3. Ek is 'n pasgemaakte boupak op Heroku (wat van die amptelike Ruby One gevurk is) gebruik, en ek het die laaste paar maande van stroomop veranderings getrek.

Dankie aan almal wat gelees en kommentaar gelewer het. Ek dink iets was net verkeerd in my juweel -afhanklikheid of Heroku -omgewing.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top