如何将我正在抓取的一组流派分开并更新为嵌套属性?



我正在抓取一个网站,我正在收集每本书的类型。例如,我将"动作,戏剧,浪漫"放入一个字符串中,现在我想将每种类型分开以将其添加到集合中,以便该书可以在动作列表或浪漫列表中等等。

我正在使用下面的代码收集流派,它将输出"动作、戏剧、浪漫"。我还有一个流派列表,我想用我正在抓取的流派填充这些流派。下面的代码有效,但它被添加为["action", "Romance"]在一起。有没有办法将其分开并分别添加每种类型?

genre_scrape = doc.css('div#content .borderClass .js-scrollfix-bottom div:contains("Genres")').text.split(' ')[1..-1]
genre = Genre.where(title: genre_scrape).first_or_create
book.update(genres: [genre] )

书籍模型

class Book < ActiveRecord::Base
 has_and_belongs_to_many :genres
end

流派模型

class Genre < ActiveRecord::Base
 has_and_belongs_to_many :books
end

您可以检查genre中是否有多个流派,如果是这样,请运行一个循环,将每种流派添加到书中。

我用下面的代码想通了。

genre_scrape = doc.css('div:contains("Genres")').text.split(' ')[1..-1]
genre_text = genre_scrape.blank? ? "" : genre_scrape
genre = []    
genre_text.each do |g|
 genres = g.gsub(/,/,"")
  genre << Genre.where(title: genres).first_or_create do |genre|
   genre
  end
end
anime.update(genres: genre)

相关内容

  • 没有找到相关文章

最新更新