2014-02-24 3 views
0

저는 매우 무거운 레일 앱을 만들고 있습니다. API 데이터를 요청하는 함수를 호출하고 싶습니다. 함수를 실행하고 사용자 모델을 업데이트 할 모든 컨트롤러에서이 함수를 호출 할 수 있어야합니다.Rails API보기없이 GET 함수

어떻게하면됩니까? 어디서 쓰고 어떻게 액세스 할 수 있는지에 관해서는?

감사

당신은 이런보기없이 작업을 사용할 수 있습니다
+0

을 API. 여러 개의 Rails 뷰가 액세스 할 Controller 액션을 의미하며 User 모델을 업데이트 할 예정입니까? – Judy

+0

보기가없는 컨트롤러 동작을 원합니다. 나는. 다른 기능에서 사용자 데이터를 업데이트하고 싶습니다. – Marcus

답변

1

모든 컨트롤러 상속의 ApplicationConttroller에서 같이 :

def action 
    data = params #Do your work here 
    respond_to do |format| 
    format.json { render json: data, status: :ok } 
    end 
end 

가 설정/routes.rb의 경로를 만들기 기본적으로 모든 컨트롤러에서 정의 된 모든 메소드/함수가 표시됩니다.

그러나 ApplicationController 범위 (보기, 헬퍼 등)의 외부에서 액세스하려는 경우 작업을 만들어야합니다. 'render'메소드와 옵션 (more : here)을 사용하여 렌더링 할 액션을 설정할 수 있습니다.

예 :

render :nothing => true 

아니면 어떤 종류의 데이터를 반환하도록 해당 작업을 필요로하는 경우, 당신은 'JSON'사용할 수 있습니다 : 당신이 무슨 뜻인지에 대해 조금 혼란 스러워요

respond_to do |format| 
     format.json { render json: data, status: :ok } 
    end 
0

:

get '/controller/action', to: 'controller#action' 
+0

/routes.rb를 설정하기 전까지는 모든 것이 의미가 있습니다. 반복 – Marcus