2012-06-22 46 views
0

我正在研究一些可以進行網頁抓取的應用程序。在網站的模式,我有這個方法:Rails模型不互相交談。不知道如何將記錄添加到另一個模型

def download_meta_tags 
    downloaded_tags = Nokogiri::HTML(Net::HTTP.get(self.domain, "/")).xpath("//meta[@name='robots']") 
    downloaded_tags.each do |t| 
     self.robots_tags.tag << t 
    end 
    end 

的網站模型通過一個連接表稱爲robots_tag_sites許多robots_tags。網站模型也爲:robots_tags accepted_nested_attributes_for_。上述方法旨在獲取方法的第1行中下載的所有標記,並將它們保存到robots_tags表的標記列中。

我認爲問題在於「self.robots_tags」仍然會抓取一些東西而不是一個單獨的東西。但我不確定如何正確添加標籤。有什麼建議?

(順便說一句,這是另一篇文章的後續行動,Rails app has trouble with inter-model saving

回答

5

您應該使用self.robots_tags.create(...)創建一個新的RobotTag對象。

假設你RobotTagtag屬性,它可能是這個樣子:

downloaded_tags.each do |t| 
    self.robot_tags.create(:tag => t) 
end 
+0

謝謝!我一直在研究這種方法一段時間,我開始失去希望!我有點尷尬,解決方案很簡單。但大多數情況下,我只是感謝幫助。謝謝! –

相關問題