2013-08-23 9 views
0

мой вопрос: мне нужно получить доступ к одному действию после того, как будет выполнено, завершено и выполнено другое действие контроллера, и второе действие причины будет иметь другой рендеринг. Наблюдатели думали использовать, но из того, что я читал, они касаются только моделей.Как настроить наблюдателя на действие контроллера в Ruby on Rails

Защиту Действие_1

render :xml => {:success => "Msg success."} 

конец

Защиту Действие_2

render :nothing => "", :locals => {:scheduling_id => scheduling_id} 

концевые

+1

Действие контроллера может быть выполнено только один раз, иначе вы встретите двойную ошибку рендеринга. Показать реальную проблему нужно решить, а не концепцию. –

+0

Я знаю Билли, но это совсем другая ситуация –

ответ

0

"Действия" это только вызовы методов. action_1 может позвонить action_2, but you can't call render more than once, так что у вас возникнет проблема с структурой, с которой вам придется иметь дело.

Возможно, что-то вроде этого - это то, что вы собираетесь делать?

class MyController < ApplicationController 

    def my_action 
    # ... 
    my_shared_stuff 
    render ... 
    end 

    private 

    def my_shared_stuff 
    # ... shared things 
    end 

end 
+0

Так что я хотел, чтобы наблюдатель, когда вы закончили render action_1, знал, что Observer теперь должен вызвать action_2. Моя ситуация в том, что мне нужно отобразить xml action_1 для возврата из веб-службы и второго метода доступа js внутри action_2.html.erb. –

+0

@RachidCalazans, запрос может запрашивать только один тип: html, js, json, xml или другие. Как вы можете доставить, даже если вы можете сделать? –

+0

@BillyChan, я знаю, что это может быть только один тип. Поэтому я хотел использовать Observer/Listiner в контроллере. Является ли это возможным? Или только для моделей? –