Ruby on rails 如何在RubyonRails中定制控制器操作的观察者

Ruby on rails 如何在RubyonRails中定制控制器操作的观察者,ruby-on-rails,ruby,controller,action,observers,Ruby On Rails,Ruby,Controller,Action,Observers,我的问题是:我需要在访问、完成和呈现另一个控制器操作之后访问一个操作,第二个原因操作将具有另一个呈现。观察家们本想使用,但据我所知,他们只处理模型 def行动1 render :xml => {:success => "Msg success."} 结束 def行动2 render :nothing => "", :locals => {:scheduling_id => scheduling_id} 结束 “操作”只

我的问题是:我需要在访问、完成和呈现另一个控制器操作之后访问一个操作,第二个原因操作将具有另一个呈现。观察家们本想使用,但据我所知,他们只处理模型

def行动1

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

def行动2

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

“操作”只是方法调用
action_1
可以调用
action_2
,因此您需要处理一个结构问题

也许这就是你想要的

class MyController < ApplicationController

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

  private

  def my_shared_stuff
    # ... shared things
  end

end
class MyController
控制器动作只能渲染一次,否则会出现双重渲染错误。展示真正需要解决的问题,而不是概念。我知道Billy,但情况不同,所以我希望在完成渲染动作时有一个观察者。我知道观察者现在应该称为动作。我的情况是,我需要呈现一个xml action_1以从Web服务返回,以及action_2.html.erb中的第二个访问方法js。@RachidCalazans,请求只能请求一种类型,html、js、json、xml或其他。即使你可以渲染,你怎么能交付呢?@BillyChan,我知道它只能有一种类型。所以我想在控制器中使用观察器/列表器。可能吗?还是仅仅用于模型?@RachidCalazans,你可以检查“细胞”宝石,看看是否能满足你的需要。@BillyChan,我会测试它。谢谢