在ruby方法中传递字符串和块

时间:2015-01-09 07:26:41

标签: ruby

尝试在方法中传递一个块:

self.handler_method("pinterest", do |pinterest|
   handle_facebook(pinterest.get_facebook[:username]) if pinterest.facebook_found?
   handle_twitter(pinterest.get_twitter[:username]) if pinterest.twitter_found?
end).call(username)

这会导致返回错误:

syntax error, unexpected keyword_do_block (SyntaxError)
                self.handler_method "pinterest", do |pinterest|
                                                   ^

我如何修复它以便它接受两个参数。我可以使用内联阻止方式{},但更愿意使用do, end

进行扩展

由于

1 个答案:

答案 0 :(得分:3)

应该是:

self.handler_method("pinterest") do |pinterest|
   handle_facebook(pinterest.get_facebook[:username]) if pinterest.facebook_found?
   handle_twitter(pinterest.get_twitter[:username]) if pinterest.twitter_found?
end.call(username)