2013-02-20 2 views
0

내 컨트롤러 메서드 중 하나를 호출하는 레일스에서 ​​작업을 만들려고합니다. 그래서 비슷한 질문을 발견했습니다. (그 중 하나는 nearly asks the exact same question입니다.)하지만 거의 항상 "코드를 모델로 이동하십시오."레일에서 작업에서 컨트롤러 메서드 호출

내 경우에는 효과가 있다고 생각하지 않지만 어쩌면 틀 렸습니다.

Instagram의 API를 사용하여 데이터를 가져 와서 데이터를 저장하는 모델의 메서드를 호출하는 메서드가 컨트롤러에 있습니다. 그것은 나에게 논리적 인 분리처럼 보인다. 하지만 이제 컨트롤러에서 fetch 메서드를 호출하는 작업을 만들고 싶습니다.

  1. 내 컨트롤러의 fetch 메소드를 태스크에서 호출 할 수 있습니까?
  2. fetch 메소드는 RESTful URL로 액세스 할 수 있습니다. 할 수있는 일 대신에 그걸 부를까요?
  3. 내 가져 오기 코드를 내 모델로 옮겨야합니까? 그렇다면 왜? 그것은 DB 활동과 직접 관련이있는 것 같지 않습니다.

도움 주셔서 감사합니다.

답변

0

모델에 코드를 삽입하지 않고 코드를 이동할 수 있습니다. 컨트롤러 및 작업에서 다시 사용할 수있는 별도의 클래스에 Instagram API와의 상호 작용을 캡슐화하는 것이 좋습니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 그것을 도우미 클래스에 넣으시겠습니까? 헬퍼 클래스의 메서드를 작업에서 호출 할 수 있습니까? – bergie3000

+0

도우미 일 필요는 없습니다. 비슷하게 (레일즈 2, 아마도 시대에 뒤떨어지기까지) 비슷한 일을해야만했을 때,/lib에 클래스를 추가하고 거기에서 사용한 클래스를 사용하고 뷰에 직접 사용될 기능을위한 헬퍼 클래스를 남겼다. – ChrisC

관련 문제