Rails & Rake задача - как предотвратить дублирование - PullRequest
0 голосов
/ 16 февраля 2011

Как предотвратить дублирование в рейке?Я пытался что-то написать, но все пусто.

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

    desc "Importer statistikker"
    namespace :reklamer do
      task :import_stats => :environment do
        require 'Mechanize'
        agent = WWW::Mechanize.new
        agent.get("http://www.iqmedier.dk")

        form = agent.page.forms.first
        form.Username = 'username'
        form.Password = 'password'
        form.submit

        agent.page.link_with(:href => "/Publisher/Stats").click
        form = agent.page.forms.first
        form.submit

        @stats = agent.page.search('//tr')[-2].search('td').map{ |n| n.text }
        if Reklamer.find(:all) where column is = Date.today if turns true 
          then update that row with @stats
        else
          Reklamer.create!(:virksomhed => 'Iqmedier', :dato => @stats[0], :unik_klik => @stats[1], :klik => @stats[2].to_i, :unik_vis => @stats[3], :vis => @stats[4], :leads => @stats[5], :ordre => @stats[6], :cpc => @stats[7], :earn => @stats[8])
        end
      end
    end

С уважением, Начинающий Rails

1 Ответ

0 голосов
/ 16 февраля 2011

Вот что вы, вероятно, хотите сделать:

existing = Reklamer.find(:first, :conditions => {:column => Date.today})
if existing.nil?
  Reklamer.create! :virksomhed => 'Iqmedier', :dato => @stats[0], ...
else
  existing.update_attributes :virksomhed => 'Iqmedier', :dato => @stats[0], ...
end

Этот код проверяет, существует ли уже объект Reklamer с столбцом, равным Date.today. Затем он либо обновит существующий, либо создаст новый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...