Ваши приборы не получают идентификаторы 1, 2, 3 и т. Д., Как вы ожидаете - когда вы добавляете приборы, они получают идентификаторы на основе (я думаю) хеша имени таблицы и имени приспособления. Для нас, людей, они просто выглядят как случайные числа.
Rails делает это, чтобы вы могли легко обращаться к другим приборам по имени. Например, светильники
#parents.yml
vladimir:
name: Vladimir Ilyich Lenin
#children.yml
joseph:
name: Joseph Vissarionovich Stalin
parent: vladimir
фактически отображается в вашей базе данных как
#parents.yml
vladimir:
id: <%= fixture_hash('parents', 'vladimir') %>
name: Vladimir Ilyich Lenin
#children.yml
joseph:
id: <%= fixture_hash('children', 'joseph') %>
name: Joseph Vissarionovich Stalin
parent_id: <%= fixture_hash('parents', 'vladimir') %>
Обратите внимание, в частности, на расширение от parent: vladimir
до parent_id: <%= ... %>
в дочерней модели - так Rails обрабатывает отношения между приборами.
Мораль истории: не рассчитывайте на то, что ваши приборы находятся в каком-либо определенном порядке, и не рассчитывайте на :order => :id
, дающую вам значимые результаты в тестах. Используйте results.member? objX
несколько раз вместо results == [obj1, obj2, ...]
. А если вам нужны фиксированные идентификаторы, напишите их в себе.
Надеюсь, это поможет!
PS: Ленин и Сталин на самом деле не были связаны.