2009-10-03 2 views
3

Members ActiveRecord 모델이 있는데 외부 소스에서 멤버를 가져 와서 데이터베이스의 멤버와 이미 동기화하는 메서드를 만들고 싶습니다.외부 소스에서 사용자를 가져 오는 메소드는 어디에서 레일에 배치됩니까?

내가 호출 할 메소드를 어디에 두어야하는지 알 수 없습니다. 그것은 논리에 많이 있기 때문에 내가 컨트롤러에 넣으면 안된 것 같아요,하지만 행에 대해서만 작동하는 것 이후 모델에 추가 할 수 있는지 모르겠습니다. def self.get_externals :

어떤 조언을 주시면 감사하겠습니다

, 난 단지 당신이 제공 한 정보를 바탕으로 RoR에

답변

0

에 새로운 오전, 나는 그것을 모델의 클래스 메소드 할 것입니다. 당신이 그것을 Member.get_externals과 같이 부르는 그런 식으로, 당신이 염려하는 것처럼 한 줄로 작동하지 않는 것처럼 보입니다.

0

의심스러운 경우 lib에 붙여야합니다.

모델에서 속한 것처럼 보이지 않습니다.

+0

글쎄, 그는 끌어온 멤버와 동기화하려고하기 때문에 논리적으로 모델에 들어가는 것처럼 보입니다. – Twisol

+0

하지만 모델이 아닙니다. 좋은 디자인으로 다른 모델에서도 쉽게 작동 할 수 있어야합니다. 기능이 두 컬렉션 (하나의 원격, 데이터베이스 (또는 그 반대))에서 작동해야하는 것처럼 나에게 느껴 지므로 어느 쪽의 멤버도 될 수 없습니다. – cwninja

+0

내 생각에 이런 종류의 함수를 lib에 옮기는 것은 꽤 쉽습니다. 그가 한 모델에서만 그것을 사용하고 있고, 미래에 다른 모델을 위해 사용할 수 없다면, 그것을 클래스 메소드로 만들기 위해 아무런 해를 끼치 지 않습니다. – Twisol

관련 문제