当块需要变量时,将块传递给方法

时间:2013-02-16 22:08:14

标签: ruby

这样可行,但对我来说看起来并不合适。想知道我错过了什么,或者我能以某种方式简化这个吗?

摘要$redis的东西。

def redis_with_connection(&block)
    $redis.with_connection { |conn| yield(conn) }
    # perhaps do other stuff like begin/rescue, etc.
end

那么我可以在我的应用程序中调用它

redis_with_connection do |conn|  # is this conn variable necessary here?
  conn.set # do stuff with the connection
end

1 个答案:

答案 0 :(得分:2)

如果您只是将块传递到.with_connection方法,则不需要生成变量。相反,您可以将块作为参数传递:

def redis_with_connection(&block)
  $redis.with_connection(&block)
  # etc ...
end