这可能是一个特定于HappyMapper的问题,但我不这么认为。
在我的应用中,用户可以上传他们的博客订阅(通过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模块内的方法调用创建每个feed
def create_feed
Feed.new( :feed_htmlUrl => self.htmlUrl, :feed_title => self.title, ...
但是,如何阻止它为那些仅仅是标签的轮廓标签创建新的“提要”? (即那些没有htmlUrl的人?)
答案 0 :(得分: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的新记录。
希望它有所帮助。