这应该是一个非常简单的问题。我有一个像下面这样的变量。
@administration = Administration.first
我希望通过所有 Controller 上的每个 Controller 操作都可以访问此变量,因此,例如,如果我有一个Product Controller ,并且在其中有通常的CRUD Action ,我希望将上面定义的@administration变量放入所有CRUD Action 。 (在销毁,创建或更新时将不需要它)。我在整个项目中都有很多 Controller ,我想知道是否有比通过我想要的所有操作手动添加它更简单的方法。
我尝试了一个全局变量
$administration = Administration.first
但是我遇到一个问题,当我更新Administration.first表的实际内容时,它没有更新。另外,我想避免使用全局变量。
任何帮助将非常感激。谢谢! :)
最佳答案
您可以在应用程序 Controller 上添加一个before_filter,以便在调用任何操作之前设置管理变量,并且可以将其限制为仅所需的操作。
class ApplicationController < ActionController::Base
...
before_filter :set_admin
def set_admin
@administration = Administration.first
end
..
http://api.rubyonrails.org/v2.3.8/classes/ActionController/Filters/ClassMethods.html