Ruby on rails loop- using API



我正在开发一个应用程序,该应用程序可以绕过其中一家电影院的API。所以我正在使用他们的XML文件,该文件每天都会更新(只是一个包含简单细节的电影列表(。我使用 Nokogiri 获取数据(我可能需要 Cron,所以它会每天自动解析(:

require 'open-uri'
@doc=Nokogiri::XML(open("http://www.kinoballada.info/repertuar/export/small/dzien/xml"))
@doc.css('dzien').each do |node|
    children=node.children
Movie.create(
    :name => children.css('tytul').inner_text
)

dzien=day

Tytul=标题

它应该每天检查数据库。如果标题在数据库和 XML 中,则它不执行任何操作。如果标题在数据库中而不是在 XML 中,则应从数据库中删除此标题。如果标题不在数据库中,并且在XML中,则可以在数据库中创建新标题。

简而言之 - 数据库包含与XML文件相同的标题。

问题是 - 我没有使用Ruby或Rails的经验,也不知道如何使用循环,明天我需要它,所以没有时间赶上。谁能帮我循环?

这里有一种方法...

    require 'open-uri'
  @doc=Nokogiri::XML(open("http://www.kinoballada.info/repertuar/export/small/dzien/xml"))
    movie_array = []
    @doc.css('dzien').each do |node|
    children=node.children
    movie_array << children.css('tytul').inner_text
    Movie.find_or_create_by(
    :name => children.css('tytul').inner_text
    )
    end
    movies_to_delete = Movie.where.not(name: movie_array)
    movies_to_delete.destroy_all

另外 - 我在使用 Cron 时我的 schedule.rb 文件应该看起来像这样吗?

every 1.day, at '0:00' do
runner "db:seeds"

就这么简单?

最新更新