проанализировал XML-файл: пропустить создание, если пусто? - PullRequest
0 голосов
/ 19 мая 2010

Это может быть конкретный вопрос HappyMapper, но я так не думаю.

В моем приложении пользователи могут загружать свои подписки на блог (через файл OPML), которые я анализирую и добавляю в свой профиль.Единственная проблема во время синтаксического анализа, или, точнее, при создании каждой подписки, я не могу понять, как пропустить записи, которые являются просто «ярлыками».

Так как файлы OPML позволяют маркировать ваши блогиИли организовать их в папки, это моя проблема.Реальные подписки на блог и их метки имеют теги "outline".

<outline text="Rails" >
<outline title="Katz Got Your Tongue?" text="Katz Got Your Tongue?" htmlUrl="http://yehudakatz.com" type="rss" xmlUrl="http://feeds.feedburner.com/KatzGotYourTongue" />

После анализа я создаю каждый фид через вызов метода внутри модуля HappyMapper

  def create_feed
    Feed.new( :feed_htmlUrl => self.htmlUrl, :feed_title => self.title, ...

Но какя могу предотвратить создание новых "каналов" для тех контурных тегов, которые являются просто тегами?(то есть те, которые не имеют htmlUrl?)

1 Ответ

0 голосов
/ 19 мая 2010

Я попробую это:

В классе моделей Feed мы используем фильтр before_create. Следующим образом:

class Feed < ActiveRecord::Base
  before_create :validate_attribute

  private

  def validate_attribute
    return false if self.htmlUrl.blank?
    # place more validation here
  end
end

При этом будет создана только новая запись, удовлетворяющая validate_attribute.

Надеюсь, это поможет.

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