Как создать карту сайта для видео в приложении rails?

Я использую sitemap_generator для моего рельса приложение. Я смог сгенерировать карту сайта для всего, кроме ссылок на видео на сайте. Следующее мое

sitemap.rb

Equipment.find_each do |e|
  add search_equipments_path(e), :changefreq => 'weekly'
 end

 Equipment.find_each do |more|
  add equipment_details_path(more), :changefreq => 'weekly'
 end

 Category.find_each do |c|
  add search_equipments_path(:category_id=>c.id), :changefreq => 'weekly'
 end

 Category.find_each do |sub|
  add search_equipments_path(:sub_category=>sub.id), :changefreq => 'weekly'
 end

 Service.find_each do |s|
  add service_details_path(s), :changefreq => 'weekly'
 end

 WantedEquipment.find_each do |f|
  add wanted_equipments_path(f), :changefreq => 'weekly'
 end

 StaticPage.find_each do |t|
  add benefits_for_buyers_path(t), :changefreq => 'weekly'
 end

 StaticPage.find_each do |sel|
  add benefits_for_sellers_path(sel), :changefreq=> 'weekly'
 end

 StaticPage.find_each do |ser|
  add benefits_for_service_providers_path(ser), :changefreq=> 'weekly'
 end

 add '/about-us'
 add '/terms-and-conditions'
 add '/pricing-plans'
 add '/how-it-work'

Это то, что приведено в документации на странице гемов для создания видеокарты сайта:

SitemapGenerator::Sitemap.create do
  add('/index.html', :video => {
    :thumbnail_loc => 'http://www.example.com/video1_thumbnail.png',
    :title => 'Title',
    :description => 'Description',
    :content_loc => 'http://www.example.com/cool_video.mpg',
    :tags => %w[one two three],
    :category => 'Category'
  })
end

Я не могу понять, как передать эти значения динамически.

2 ответа

Решение

Если вы хотите генерировать видео контент на основе dynamic data, попробуй это:

Model.all.each do |e|
      video = VideoInfo.new(e.video_url)
      add("https://example.com/views/#{e.slug}", :video => {
        :thumbnail_loc => "#{video.thumbnail_medium}",
        :title => "#{video.title}",
        :description => "#{video.description}",
        :content_loc => "#{e.video_url}",
        :tags => e.slug.split('-'),
        :player_loc => video.embed_url  
        })
end

Вот VideoInfo это драгоценный камень, используемый для получения метаинформации видео.

Можете ли вы использовать этот образец, но измените его на название вашей модели:

 SitemapGenerator::Sitemap.create do
  add '/contact_us', 'changefreq': 'weekly'
  Article.find_each do |article|
    add article_path(article), lastmod: article.updated_at
  end
end

Как вы можете видеть, он делает find_each на модели статей. Так что вы можете сделать то же самое на вашей модели видео.

Другие вопросы по тегам