Спасибо
ичок в Rails и пытаюсь подключить свое приложение к стороннему API (в нем нет гема или плагина для Rails).
В идеале, я хочу иметь возможность анализировать данные (я слышал хорошие вещи о Нокогири, но не знаю, как использовать их для того, что я хочу делать. Не из-за отсутствия попыток), а затем вставить его в базу данных.
Кто-нибудь может дать инструкции или указать мне правильное направление? Приветствия.
ОБНОВИТЬ:
Rake Task:
task :fetch_flyers => :environment do
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::XML(open(url))
events = doc.search('//event')
events.each do |event|
@data = Event.new(
:name => event.at('name').text,
:date => '2011-09-18',
:time => '17:00',
:description => event.at('long_description').text,
:address => event.at('street').text,
:postcode => event.at('postcode').text,
:price => event.at('costs').text,
:user_id => 1,
:genre_id => 1,
:town_id => 1)
@data.save
if @data.save
puts "Success"
else
puts "This didn't save, F***"
end
end
end
Я указал URL в своем коде, просто скрыл его от этой вставки кода. Этот код не работает. Я не могу за свою жизнь понять, почему. Все, что я получаю, это вывод в терминале, говоря«Это не спасло, F ** Это означает, что по какой-то причине события не сохраняются. Может ли кто-нибудь пролить свет на это?
ОБНОВЛЕНИЕ 2:
Я проверил, что URL-адрес правильный, и проверил, что XML-файл правильно анализируется с помощью:
# Printing Out the Variables to make sure they work.
puts @name
puts @date
puts @time
puts @desc
puts @address
puts @postcode
puts @price
puts @user
puts @genre
puts @town
.. который успешно распечатывает значения в терминале. Тем не менее, он по-прежнему не будет вставлен в мою базу данных.
Моя модель выглядит следующим образом:
belongs_to :user
belongs_to :genre
belongs_to :town
has_attached_file :image, :styles => { :grid => '90x128#', :list => '140x200#', :full => '400x548'}
validates_attachment_content_type :image, :content_type => ['image/jpeg', 'image/png']
before_post_process :normalise_file_name
validates :name, :presence => true
validates :date, :presence => true
validates :time, :presence => true
validates :description, :presence => true
validates :address, :presence => true
validates :town, :presence => true
validates :postcode, :presence => true
validates :price, :presence => true
validates :user_id, :presence => true
validates :viewcount, :presence => true
Мой файл Development.log просто показывает загрузку:
[1m[35mTown Load (0.1ms)[0m SELECT "towns".* FROM "towns" WHERE "towns"."id" = 1 LIMIT 1
[1m[36mTown Load (0.1ms)[0m [1mSELECT "towns".* FROM "towns" WHERE "towns"."id" = 1 LIMIT 1[0m
[1m[35mTown Load (0.1ms)[0m SELECT "towns".* FROM "towns" WHERE "towns"."id" = 1 LIMIT 1
[1m[36mTown Load (0.1ms)[0m [1mSELECT "towns".* FROM "towns" WHERE "towns"."id" = 1 LIMIT 1[0m
[1m[35mTown Load (0.1ms)[0m SELECT "towns".* FROM "towns" WHERE "towns"."id" = 1 LIMIT 1
[1m[36mTown Load (0.1ms)[0m [1mSELECT "towns".* FROM "towns" WHERE "towns"."id" = 1 LIMIT 1[0m
[1m[35mTown Load (0.1ms)[0m SELECT "towns".* FROM "towns" WHERE "towns"."id" = 1 LIMIT 1
.......
Каждый раз, когда я пытаюсь запустить задачу грабли. Это что-нибудь значит?