AdilA
@AdilA
Нравится кодить, изучаю go c echo

Как импортировать csv файл в mysql join table с помощью rails?

Есть три модели Item Gost ItemGosts
class Item < ActiveRecord::Base
    has_many :item_gosts
    has_many :gosts, through: :item_gosts
end

item_gost.rb
class ItemGost < ActiveRecord::Base
          belongs_to :item
          belongs_to :gost
        end

gost.rb

class Gost < ActiveRecord::Base
    has_many :item_gosts
    has_many :items, through: :item_gosts
end


Item уже импортировал теперь осталось импортировать join table ItemGosts не пойму как потому что у Item может быть несколько Gosts

Есть csv файл следующего содержания
item_id,gosts_names
1,8734; 14-162-184-2150; 8758
2,8734; 14-161-184-2000; 8732

Где 1 колонка это Item.id а вторая Gost.name

Пытаюсь сделать что то типа
ItemGost.rb
def self.import(file)
      CSV.foreach(file.path, headers: true) do |row|
        item = Item.find_by_id(row["item_id"])
        gosts = Gost.find_or_create_by(name: row["gosts_names"].split(;))
        ?????
        item.save!
      end
    end

Но мозгов не хватает своих.
  • Вопрос задан
  • 2411 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zhum
программист, администртор
item.gosts << gosts
Вроде так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы