2015-10-09 3 views
1

Привет У меня есть ошибка AssociationTypeMismatch: Clan(#92877230) expected, got String, когда я пытаюсь засеять свой дБ.Rails AssociationTypeMismatch: Ожидаемый клан, получил строку

У меня есть 2 объекта Clan и Family и у меня есть отношения, которые Clan has_many семьи, и Family принадлежит Clan.

В моем seed.rb У меня есть функция, как это:

Family.destroy_all 
clans = Clan.all 
clans.each do |clan| 
    families.each do |family| 
    clan.families.create(family) if clan.name == family[:clan] 
    end 
end 

families является массивом хэш со всеми семьями, которые должны быть включены.

Из моего поиска, я думаю, что при создании family он ищет идентификатор клана.

Я попытался добавить accepts_nested_attributes_for с той же ошибкой.

EDIT:

Я сделал несколько тестирование, и это выглядит как клан, атрибут семейного объекта cousing проблемы.

Вот пример объекта родового из семян:

{name: "Krab", 
    clan_name: "Krab", 
    mon_img: "", 
    desc: "foo bar foobar"}, 

и вот пример семейного объекта:

{ name: "Toritaka", 
    clan: "Krab", 
    desc: "some text....", 
    bonus: "+1 Spostrzegawczość", 
    mon_img: ""}, 

я могу создать в консоли любые clan.families до тех пор, как я Не устанавливайте атрибут клана.

+0

В какой строке ошибка указывает на? – Pavan

+0

'' clan.families.create (family) if clan.name == family [: clan] ' – Kazik

+0

Я проделал некоторый тест, и проблема, с которой связана проблема, является атрибутом клана объекта семейства. Я обновлю вопрос – Kazik

ответ

1

Как указано выше, проблема была вызвана переменной clan в объектах Family. У нас нет какого-либо идеологического пути, помимо некоторых именных столкновений.

Изменение названия из «клана» до «clan_name» сделал трюк :)

Смежные вопросы