Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 当块需要变量时将块传递给方法_Ruby - Fatal编程技术网

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

Ruby 当块需要变量时将块传递给方法,ruby,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| # i

这很管用,但我觉得不太对劲。我想知道我遗漏了什么,或者我是否可以简化它

抽象掉
$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

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

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