此时我需要在视图中使用三个不同方法中的三个变量和相应的文件,但我不想在每个方法中定义每个变量。
如何定义变量一次并且可以访问所有三种方法中的变量?
这些是方法:
def pendientes
end
def proceso
end
def finalizadas
end
这是三个变量:
@pendientes = Support.where("estado = ?", 1)
@procesos = Support.where("estado = ?", 2)
@finalizadas = Support.where("estado = ?", 3)
我如何定义变量来做到这一点?
答案 0 :(得分:3)
如果你在控制器的环境中工作,你可以这样做:
class MyController < ApplicationController
before_filter :initialize_variables
def pendientes
end
def proceso
end
def finalizadas
end
private
def initialize_variables
@pendientes = Support.where(estado: 1)
@procesos = Support.where(estado: 2)
@finalizadas = Support.where(estado: 3)
end
end
<强>更新强>
如果您使用before_filter
滚动,最好添加only: [:pendientes, :proceso, :finalizadas]
,以便添加到控制器的未来操作不会初始化这三个变量。
另一种选择是删除before_filter
调用,并从现有的三个操作中调用initialize_variables
方法。