2014-11-28 3 views
0

Может ли кто-нибудь помочь мне понять, как настроить мой файл семян для создания моих данных с соответствующими записями?Создание объединения файлов семян 2 Модели

До сих пор я

# Arrays 
strand = ['Oracy across the curriculum', 'Reading across the curriculum', 'Writing across the curriculum', 'Developing numerical reasoning', 'Using number skills', 'using measuring skills', 'Using data skills'] 
component_array = Component.all.map(&:id) 

# Add each item in array 
strand.each { |sample| Strand.create(name: sample) } 

Взаимоотношение быть

component has_many :strands 
strand belongs_to :component 

В пределах этого я хочу, чтобы назначить component_array[0] на первых 3-х элементов в моем массиве и component_array[1] в остальных 4-х элементов.

Какой синтаксис я должен использовать, мог бы я посмотреть на хэш здесь?

+0

что отношения между '' Component' и Strand'? Это 'Strand принадлежит_to: component' &' Component has_many: strands'? –

+0

извинения, забыли добавить отношения, просто добавили его на вопрос – Richlewis

ответ

1

Очень удобно назначать модели своим отношениям.

В вашем случае Strandbelongs_toComponent

name_arr = ['Oracy across the curriculum', 'Reading across the curriculum', 'Writing across the curriculum', 'Developing numerical reasoning', 'Using number skills', 'using measuring skills', 'Using data skills'] 
components = Component.all 

name_arr.each_with_index do |name, index| 
    strand = Strand.new(:name => name) 

    # associate a component to your strand 
    # this will add the component_id of your strand 
    strand.component = components.first if index < 3 
    strand.component = components[1] if index >= 3 

    strand.save 
end 

Аналогично, назначить has_many отношения с

component = Component.new(:foo => :bar) 
strand = Strand.new(:name => 'Oracy across the curriculum') 

# assign it to the strand, automatically adds fitting id 
component.strands << strand 
component.save 
+0

за вашу помощь, но это не создает и значение индекса по какой-то причине – Richlewis

+0

что не работает? Значение индекса? –

+0

индекс возвращает нулевые значения – Richlewis