Нет такого файла или каталога: open-uri в контроллере rails

Я пытаюсь использовать открытый метод драгоценного камня open-uri в Rails.

Когда я пробую это в отдельном приложении Ruby, я просто требую его поверх файла, и все в порядке. Но теперь я хочу, чтобы он использовал контроллер в приложении Rails. Целесообразно ли ставить требование поверх контроллера?

Код контроллера:

def search
  if params.has_key? :q
    params[:q] =~ /\?v=(.*?)&/
    xmlfeed = Nokogiri::XML(open("http://gdata.youtube.com/feeds/api/videos?q=#{$1}"))
    if xmlfeed.at_xpath("//openSearch:totalResults").content.to_i == 1
      flash[:notification] = "Video #{xmlfeed} found"
      #save video id to database
      redirect_to root_url
    else
      flash[:error] = "Video #{xmlfeed} not found"
      redirect_to root_url
    end
  else
    flash[:error] = "You didn't insert video URL."
    redirect_to root_url
  end
end

Ошибка:

Нет такого файла или каталога – http://gdata.youtube.com/feeds/api/videos?q=cSnkWzZ7ZAA


person Иван Бишевац    schedule 13.09.2012    source источник


Ответы (2)


Я думаю, что лучше создать модель для получения каналов YouTube и поместить туда весь код, который извлекает видео и анализирует результат — контроллер должен быть как можно более тонким.

person EfratBlaier    schedule 13.09.2012

Вы должны сделать модель для такого рода вещей.

Но отвечая непосредственно на ваш вопрос. Вы не почувствуете никакой разницы, когда поместите его в верхнюю часть контроллера или в нужном вам действии.

Возможно, высокоинтенсивные приложения могут заметить это при тестировании, но я еще этого не видел.

person Yavor Ivanov    schedule 26.09.2012