2013-06-28 46 views
-1

我是一名rails新手。數據源在Rails中的位置

我有我的(開放的URI/curb..etc)讀取數據5個不同的來源獲取服務器的「活」的狀態數據(服務器啓動/關閉/警告/ ..等)。

我想在一個頁面上顯示所有這些。

我不需要保存任何我取,除了一個源數據。

在哪裏把所有的代碼,lib文件夾下的不同類?然後從控制器中獲取這些信息。

讓我的只有一個控制器讀取所有數據或每源的控制器,然後主控制器?

我還需要每個來源的模型嗎?

謝謝

回答

0

對於一些背景檢查出一些Sandy Metz' talks。當談到正確的面向對象時,她是我的英雄。

你是用AJAX抓取它們嗎,即JSON?如果您正在屏幕抓取,請使用Nokogiri寶石。它可能是你所需要的。否則建在紅寶石課是你的朋友。

我會寫一個類,它爲你獲取的每個項目提供讀取,也許是一個子類或單獨的類,以滿足SRP。雖然可能會讓所有項目超載一個類別,但它會很快變得難以駕馭。

我會緩存它們與Dalli的memcache,如果你不需要他們留下來。這樣你就不會殺掉你從中獲取信息的網站。

你也可能要考慮更多的是手斷像statsd方式發送數據。本質上,你將一個UDP數據包發送到一個收集器(statsd),這樣你對運行的應用程序的影響最小,因爲UDP數據包很便宜並且易於觸發。

把類放在你想要的地方。但是,如果這個Rails應用專門用於數據收集,它們可能屬於模型文件夾。

從控制器抓取只是利用你的類的問題。如果該類存在於Rails應用程序中,則可以使用它。 :)

更新: 在寫這篇文章後,我意識到......如果你只是在設置一個心跳監視器...請檢查出Pingdom。爲什麼重新發明輪子。 :)

+0

謝謝!要回答我用JSON提取的問題,我將檢查從談話開始的所有鏈接!我也只是閱讀有關使用模塊vs類,我不知道如果使用模塊也可以。一旦我通過所有鏈接並獲得更好的理解,我會更新這個問題。 – nevermind

+0

現在,我正在考慮顯示統計信息的「頁面」的控制器......它將調用放置在lib中的模塊中所有需要的方法。 – nevermind

+0

查看這本書[Metaprogramming Ruby](http://www.amazon.com/Metaprogramming-Ruby-Program-Like-Pros/dp/1934356476),因爲它是Ruby簡單和高級方面的重要介紹。對於新的Rubyists,第1部分應該沒問題。模塊將打破你的代碼,但從技術上講,分解並不合適,因爲你基本上還在構建一個超級類。儘管與模塊混合,但大部分是Ruby方式。也理解類是Module的一個子類。你也可以使用OpenStruct類,如果它真的很輕。 :) – engineerDave