使用 Wikipedia-Client Gem 更新 Rails 数据库

Using Wikipedia-Client Gem to Update Rails Database

我的ruby和Rails有点生疏了。我的数据库中有一个名为 institutes 的 table,其中填充了一些列。我想使用 Wikipedia-Client gem 来填充其他一些内容。我想使用 name 属性在维基百科上查找页面,然后使用 page.summary 作为 table 中的 description 属性,使用 page.image_urls.first 作为 [=18] =] 属性。目前,我正在努力想办法解决这个问题。

我当前的代码是:

require 'Wikipedia'
Institute.each do |institute|
   school = institute.pluck(:name)
   page = Wikipedia.find(school)
   description = page.summary
   picture = page.image_urls.first
   Institute.update!(description: description, picture: picture)
end

我显然在选择和使用名称属性来查找维基百科页面方面做错了,但无法完全解决。我认为即使我正确地提取了名称,它也不会为正确的 id 分配任何内容。

如果维基百科搜索中名称开头的 "The" 存在于 :name 中,如果还有一种方法可以删除它,那也会有所帮助,因为似乎有些机构会删除它在维基百科上。

你可以尝试使用这样的东西:

#use https://github.com/kenpratt/wikipedia-client
require 'wikipedia'

#select all Institutes through AR model
Institute.all.each do |institute|
  #'institute' is an object, so we can get its name by dot operator
  school = institute.name

  #try to find school as is
  #then try to find without 'The'
  #and go ahead only if page exists
  page = Wikipedia.find(school)
  page = Wikipedia.find(school[3..-1].strip) if page.content.nil? and school[0..2].downcase == 'the'
  next if page.content.nil?

  description = page.summary
  picture = page.image_urls.first
  #update Institute object
  institute.update!(description: description, picture: picture)
end