2016-05-31 2 views
0

У меня есть этот массив, возвращающийся с веб-царапин. Которая выглядит примерно так:Использование массива внутри рельсов удаляет дубликаты

[["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"]] 

Так что же происходит, что он дублирует? Так что я хотел изменить выше массив этого (она будет отличаться каждый раз, так что бы нужно удалить дубликаты.):

[["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"] 

Все остальное, что существует после того, как это боян.

То, что я нуждаясь это плата и цена будет на вар, так что я могу сохранить его вниз к базе данных :)

Благодаря Сэм

дополнительные Херес raketask.

require "nokogiri" 
require "open-uri" 
namespace :task do 
    task test: :environment do 
    ticketmaster_url = "http://www.ticketmaster.co.uk/derren-brown-miracle-glasgow-04-07-2016/event/370050789149169E?artistid=1408737&majorcatid=10002&minorcatid=53&tpab=-1" 
    doc = Nokogiri::HTML(open(ticketmaster_url)) 
    event_name = nil 
    ticket_price = nil 
    doc.xpath("//script[@type='text/javascript']/text()").each do |text| 
     if text.content =~ /more_options_on_polling/ 
     ticket_price = text.to_s.scan(/\"(formatted_(?:price|sum_fees))\":\"(.+?)\"/) 
     byebug 
     end 
    end 

    end 
end 

ответ

1

вам просто нужно добавить uniq метод на массиве, который вы получили от веб царапать, который даст вы получаете значения uniq из этого массива, а затем вы можете легко перебирать этот массив для хранения значений в базе данных.

1

Вы можете использовать как

[["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"]].uniq 

затем результат:

[["formatted_sum_fees", "£5.60"], ["formatted_price", "£46.50"], ["formatted_sum_fees", "£4.50"], ["formatted_price", "£37.50"], ["formatted_sum_fees", "£3.30"], ["formatted_price", "£27.50"]] 
+0

Прошу прощения, я не понимаю этого? –

Смежные вопросы