ruby中的过滤器
如何用ruby制作过滤器?我知道这个函数已经存在于rails中,但是我们如何在ruby程序中编写它呢?节目如下:ruby中的过滤器,ruby,Ruby,如何用ruby制作过滤器?我知道这个函数已经存在于rails中,但是我们如何在ruby程序中编写它呢?节目如下: module Filter def before_filter *args end def after_filter *args end end class Ingredient def one puts "in one" end def two puts "in two" end def three
module Filter
def before_filter *args
end
def after_filter *args
end
end
class Ingredient
def one
puts "in one"
end
def two
puts "in two"
end
def three
puts "in three"
end
def four
puts "in four"
end
extend Filter
before_filter :one, :two
after_filter :four
end
dish1 = Ingredient.new
dish1.three
Rails可以避免这种情况,因为它们可以控制调用方法的方式。但是在这里,你直接从外面呼叫三 为了符合您提出的约束条件,任何这样做的代码都将是非常奇怪的。此外,后过滤器的作用是什么?它确定返回值吗 我已经实现了类似的东西,虽然有一个稍微不同的界面,它保存了一些奇怪的东西,但仍然很糟糕
此外,还有一个显而易见的问题,那就是为什么你会需要这样的东西。你想知道它是如何在Rails控制器中实现的,还是仅仅完成一些事情?如果是后者,你能提供一个更有意义的例子,或者更准确地描述你想做什么?过滤器在控制器中是有意义的(在过滤器可以停止请求之前),但在配料中这意味着什么?@Joshuacheck:他们显然在去掉标记:当我们调用实例方法时..befor:filter中的所有方法都将首先执行,然后执行我们调用的函数,,,之后,应执行在after_筛选器中写入的函数。