Nei miei modelli, ho utenti (User
) e storie (Story
), con la relazione: user has_many stories
.Ruby on Rails: #any? restituisce il valore errato
ho notato qualcosa di strano nel mio guscio:
(dev) user.stories.any?
=> true
(dev) user.stories
Story Load (1.6ms) SELECT "stories".* FROM "stories" WHERE "stories"."user_id" = 703 ORDER BY created_at ASC [["user_id", 703]]
=> []
(dev) user.stories.any?
=> false
Come funziona? Questo è dovuto al mio codice, o è un bug di qualche tipo in Rails e il modo in cui interroga il database?
@sawa che cosa vuoi dire inglese punteggiatura? Potresti essere più preciso? Ovviamente non sono madrelingua e a volte semplicemente non vedo dove sia l'errore. – Mat
Ok. Le regole sono diverse in tutte le lingue. In francese, utilizziamo gli spazi prima e dopo quando il segno di punteggiatura è composto da due parti. – Mat
possibile difetto nella relazione attiva delle rotaie? vedi source per http://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method-i-any-3F che chiama http://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method- i-empty-3F e restituisce true 'if limit_value == 0' - potrebbe essere un'ottimizzazione per evitare di colpire il database più volte? Mi chiedo se si comporta allo stesso modo in ambiente TEST rotaie? – house9