2012-01-12 3 views
0

В настоящее время я пытаюсь добавить некоторые методы анализа методу контроллера в приложении Rails 3.Rails 3 Custom Method Location

У меня есть действие контроллера следующим образом:

def control 
    @device = Device.find(params[:id]) 
    <do things> 
    parse_return(@returned_data) 
end 

и я добавил специальный метод к контроллеру, как показано ниже (этот метод не будет иметь никаких маршрутов и были бы доступны только для контроллера действия):

def parse_return 
    <parse data> 
end 

, но это не означает, что метод parse_return будет использоваться. Есть ли где-то еще в приложении Rails, что я могу использовать повторно используемые методы?

Спасибо!

+0

У вас есть ошибки? –

ответ

0

На первый взгляд кажется, что вы не можете отдать ответ. Это правда, что у control action нет связанного просмотра?

В этом случае вы должны вручную вызвать render в своем действии. Например, чтобы отдать ответ JSON, вы можете сделать это:

def control 
    # ... 

    render :json => parse_return(@returned_data), 
     :content_type => 'application/json', 
     :layout => false 
end 
0

Вы должны указать, что такое ошибки.

Что произойдет, если вы попробуете это?

def parse_return(returned_data) 
    <parse data> 
end 

Возможно, метод не ожидает передачи параметра вместе с ним.

+0

Кроме того, вы можете также поместить методы внутри моделей и вызвать их из контроллера, если хотите. – joseph