2013-06-28 33 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