2010-05-19 46 views
0

這可能是一個HappyMapper的具體問題,但我不這麼認爲。解析XML文件:跳過創建如果空白?

在我的應用程序中,用戶可以上傳他們的博客訂閱(通過OPML文件),我將其解析並添加到他們的個人資料中。唯一的問題是在解析過程中,或者更具體地說每個訂閱的創建,我不知道如何跳過只是「標籤」的條目。

由於OPML文件允許您標記您的博客或將其組織到文件夾中,這是我的問題。實際的博客訂閱和他們的標籤都有「大綱」標籤。

<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)

回答

0

我會試試這個:

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的新記錄。

希望它有幫助。

+0

嘿謝謝SamChandra! ...但我試過這個無濟於事。可能會得到它的工作,但它有點太hackish。如果htmlUrl爲空,我仍然不明白爲什麼我不能在實際的create_feed方法中捕獲並忽略feed創建。這是誠實地打動我的心。好吧,再次感謝SamChandra。我會繼續玩。 – GoodGets 2010-05-19 22:39:20