2016-04-11 123 views
2

我有一个rails类Datatable,返回一个as_json对象。Rails方法来分配实例变量

我想然后采取该对象,并将其分配给几个实例变量来更新partials,所以当用户调用无数的ajax选项时,我可以做一个json对象服务器端,将它们分配给vars服务器端,并通过部分erb重新加载。

我打电话给我的update_divs.js.erb之前,如何在我的控制器中拨打Model.refresh_objects

如果我不知道如何做到这一点,请教我。

回答

1

如果我正确理解你,你需要after_action方法来使用。

http://apidock.com/rails/v4.0.2/AbstractController/Callbacks/ClassMethods/after_action

UPD

BaseController < ApplicationController 
    before_action :some_action_name, only: [:show, :edit, :update, :destroy] 

    def some_action_name 
    end 
end 

HomeController < BaseController 
    def show 
    end 
end 

在这种情况下BaseController由ApplicationController中继承的,我们把some_action_name方法BaseController和继承的HomeController从BaseController。我们定义some_action_name必须在动作显示,编辑,更新,销毁之前执行。这意味着现在some_action_name也会在HomeController的这些方法之前执行。

+0

是的,我想这是最好的行动。我会把我的方法放在应用程序控制器中,这样我就可以在我的家用控制器和x控制器上使用了吗? –

+0

是的,你可以把它放在应用程序控制器(如果你只有2个控制器),或者你可以为你的两个控制器创建父控制器(如果你有其他的控制器不能继承这个before_action) –

+0

有趣的...哪个会是最好的?由父母控制者,你是指超级控制者吗?你可以在你如何应用继承的答案中举一个例子吗? –