Railscasts 168 - Feedjira не работи

Опитвам се да направя приложение за RoR, което анализира RSS емисия, след което рови в нея за ключови думи. За да добавя RSS, следвам това: http://railscasts.com/episodes/168-feed-parsing

И не работи. Инсталирах скъпоценния камък и рестартирах rails сървъра. Редът config/environment предотвратява работата на rake db:migrate, което дава следната грешка:

/config/environment.rb:7:in `<top (required)>': undefined local variable or method `config' for main:Object (NameError)

така че го изоставих.

Редът на конзолата FeedEntry, в който подавам URL адреса, дава тази грешка: FeedEntry.update_from_feed("feed://seekingalpha.com/market_currents.xml") NameError: uninitialized constant FeedEntry::Feedzirra

И кодът за преглед дава тази грешка: wrong number of arguments (1 for 0) с това в извлечения източник:

<div class="container-fluid" id="seeking_alpha">
<h3>Seeking Alpha Feed</h3>
<ul class="list-group">
<% for entry in FeedEntry.all(:limit => 10, :order => "published_at desc") %>
  <li class="list-group-item"><%= link_to h(entry.title), entry.url %></li>
<% end %>
</ul>

Можете ли да ми помогнете да отстраня проблемите тук? Освен че съм пълен Rails n00b, предполагам, че проблемът ми е, че Feedjira не е инициализирана, вероятно причинена от изоставянето на този ред поради използването на по-нова версия на Rails (4.0) и Ruby (2.1.1) от урока прави. И може би файловият формат .xml във емисията също причинява проблем. Изглежда, че Feedjira просто не иска да съществува извън собствения си модел. Всякакви идеи ще бъдат много оценени.


person Rootski    schedule 02.10.2014    source източник
comment
Също така, току-що проверено - Feedjira работи върху локален .xml файл през rails конзолата в моето приложение.   -  person Rootski    schedule 02.10.2014


Отговори (1)


Всички ваши грешки произтичат от пропускането на този първи конфигурационен оператор.

Ако погледнете изходния код от Railscast, Райън дефинира config така в environment.rb:

Rails::Initializer.run do |config|

Въпреки че не можем да видим вашия environment.rb, вашата грешка гласи, че не сте дефинирали config.

Без config не можете да изпълнявате миграции, така че няма FeedEntry модел, оттук и грешките във вашия конзолен скрипт и вашия изглед. Ще ви е необходим също този израз, за ​​да използвате Feedzirra::Feed във вашия модел - трябва да работи.

За да обобщим:

  • Дефинирайте config в config/environment.rb
  • Изпълнете вашата миграция
  • Сравнете с изходния код на Railscast, ако се затрудните

Освен това този Railscast е стар (2009); „Feedzirra“ е преименуван на „Feedjira“ и можете да го добавите към вашия Gemfile:

gem 'feedjira'

Ще трябва да погледнете документите (http://feedjira.com) за всяка променена функционалност в gem, но това вероятно ще бъде по-лесен път.

Късмет!

person Jake Worth    schedule 08.02.2015