2011-05-06 32 views
0

目标:找到或创建一个类别,将其添加到连接表通过饲料Rails的增加从模型连接表

修订在解析时:

has_many :category_feeds 
has_many :categories, :through => :category_feeds 

    def self.nokogiri_get_feed(url) 
    doc = Nokogiri::HTML(open(url)) 
    doc.search('feed entry').each do |item| 
     unless exists? :guid => item.css('id').text 
     categories = [] 
     item.xpath('content').each do |i| 
      i.css('subject').each do |subject| 
      name = subject['subjectname'] 
      categories << Category.find_or_create_by_name(name) 
      end 
     end 
     create!(:name => item.css('title').text, :url => item.at_css("link")[:href], :guid => item['id'], :categories => categories) 
     end 
    end 
    end 

回答

0
categories << Category.find_or_create_by_name(name) 

我建议阅读更多在associations guide

+0

看着指南,但你的输入和http://railspikes.com/2008/8/11/understanding-map-and-reduce之间的工作。用可能的答案更新了问题,但是这是正确的吗?必须添加类别= []并在主题后移动创建。 – pcasa 2011-05-07 11:57:43

+0

只有当你错误地表达了你的目标,并且实际上你想用新的**替换任何现有的类别,而不是**按照你的要求添加**。 – smathy 2011-05-07 20:07:17