2013-06-28 4 views
-1

저는 레일에서 초보자입니다.레일에서 데이터 소스 위치

나는 '라이브'상태 데이터 (서버 위/아래/경고/.. 등)를 얻기 위해 (open-uri/curb..etc)에서 데이터를 가져 오는 5 가지 소스를 가지고 있습니다.

모든 페이지를 한 페이지에 표시하고 싶습니다.

하나의 소스를 제외하고 가져 오는 데이터를 저장할 필요가 없습니다.

여기서 모든 코드를 넣으려면 lib 폴더 아래에 다른 클래스가 있습니까? 그런 다음 컨트롤러에서 가져 오는 것입니다.

하나의 컨트롤러 만 소스마다 컨트롤러 또는 컨트롤러를 읽은 다음 메인 컨트롤러를 읽습니까?

소스별로 모델이 필요합니까?

답변

0

몇 가지 배경이 Sandy Metz' talks의 일부를 체크 아웃 주셔서 감사. 그녀는 적절한 OOP에 관해서는 내 영웅입니다.

AJAX (예 : JSON? 화면을 긁는다면 Nokogiri 보석을 사용하십시오. 아마 당신이 필요로하는 모든 것. 그렇지 않으면 내장 된 루비 클래스는 친구입니다.

SRP을 만족시키기 위해 가져 오는 각 항목에 대해 반입을 수행하는 클래스와 하위 클래스 또는 개별 클래스를 작성합니다. 하나의 클래스에 모든 아이템을 과부하하는 것이 유혹을 불러 일으킬 지 모르지만, 매우 신속하게 깨지기 쉽습니다.

지키지 않아도된다면 memcache에 Dalli으로 캐시 할 것입니다. 그렇게하면 정보를 얻는 웹 사이트를 죽이지 않을 것입니다.

또한 데이터 전송을 위해 statsd와 같은 접근 방식을 고려할 수도 있습니다. 본질적으로 수집기 (statsd)에 UDP 패킷을 보내면 UDP 패킷이 저렴하고 쉽게 작동하기 때문에 실행중인 응용 프로그램에 최소한의 영향을 미칩니다.

원하는 곳에 수업을 배치하십시오. 그러나이 Rails 응용 프로그램이 데이터 수집 전용 인 경우 모델 폴더에 속한 것입니다.

컨트롤러에서 가져 오는 것은 수업을 활용하는 데 불과합니다. 클래스가 Rails 앱에 있다면 ... 그것을 사용할 수 있습니다. :)

업데이트 : 이 글을 쓰고 나면 ... 당신이하는 일은 모두 하트 비트 모니터를 설정하는 것입니다 ... Pingdom을 확인하십시오. 왜 바퀴를 다시 발명하십시오. :)

+0

고마워요! 내가 JSON으로 가져 오는 질문에 대답하기 위해, 나는 이야기로 시작하는 모든 링크를 점검 할 것이다! 나는 모듈 대 클래스를 사용하는 것에 대해서도 읽고 있었다. 모듈을 사용하는 것이 좋을지 궁금하다. 일단 모든 링크를 통해 더 나은 이해를 얻으면이 질문을 업데이트 할 것입니다. – nevermind

+0

지금 당장, lib에있는 모듈에서 필요한 모든 메소드를 호출 할 통계를 보여주는 "페이지"컨트롤러를 생각하고 있습니다. – nevermind

+0

루비의 단순하고 진보 된 측면에 대한 훌륭한 소개로서 [Metaprogramming Ruby] (http://www.amazon.com/Metaprogramming-Ruby-Program-Like-Pros/dp/1934356476)를 읽어보십시오. 1 부는 새로운 루비스트에게 좋을 것입니다. 모듈은 코드를 분해하지만 기술적으로는 분해가 적절하지 않습니다. 기본적으로 여전히 1 메가 클래스를 구축하고 있기 때문입니다.대부분 모듈과 함께 섞여 있지만 Ruby 방식입니다. 또한 Classes는 Module의 하위 클래스라는 것을 이해하십시오. 또한 정말 가벼운 경우 OpenStruct 클래스를 사용할 수 있습니다. :) – engineerDave