你可以在Ruby on Rails中从另一个before_filter调用before_filter吗?

时间:2013-01-08 22:54:37

标签: ruby-on-rails before-filter

是否可以从另一个调用before_filter?我问的原因是因为我有两个相似的before_filters,但是有一个额外的条件仍然可以让它成为现实。因此,如果第一个before_filter为真,那么第二个也为真,但如果第一个为假,则检查另一个条件,然后确定它是真还是假。

3 个答案:

答案 0 :(得分:1)

过滤器只是方法是正确的,所以要回答你的问题:

是的,可以从其他过滤器调用过滤器。

但请注意,您不应渲染或重定向两次,否则您将收到AbstractController::DoubleRenderError。因此,如果其中一个过滤器正在渲染,则不应调用另一个过滤器。

使用布尔返回值来管理它。

答案 1 :(得分:0)

你可以。 before_filter只是一个调用常规方法的触发器。该方法可以调用任何其他方法,甚至是其他before_filters调用的方法。

答案 2 :(得分:-1)

如果您不想合并这些方法,我可以做这样的事情。

before_filter :filter_method

def filter_method
 if method_one == true
  method_two
 end
end

def method_one
 # stuff here
end

def method_two
 # stuff here
end