2014-04-23 16 views
0

我有一個幫手:不能檢查「content_tag」,調用任何方法都會導致錯誤

module MyHelper 

    def test 
    binding.pry # break point 
    MyModule.test2(&content_tag) 
    end 

end 

在破發點,我想將它傳遞給MyModule的前檢查content_tag。儘管如此,無論我做了什麼導致的錯誤:

content_tag 
ArgumentError: wrong number of arguments (0 for 1+) 

(content_tag).respond_to? :call 
ArgumentError: wrong number of arguments (0 for 1+) 

content_tag.class 
ArgumentError: wrong number of arguments (0 for 1+) 

content_tag.is_a? Proc 
ArgumentError: wrong number of arguments (0 for 1+) 


content_tag.lambda? 
ArgumentError: wrong number of arguments (0 for 1+) 

我的目的只是傳遞給MyModule。但是我不能這樣做,錯誤和上面的一樣。這是爲什麼?

回答

3

該錯誤是不言自明的。您在不帶參數的情況下調用content_tag,而此方法至少需要一個參數。

如果你想將其轉換爲阻止並通入test2方法,它可能與Object#method

MyModule.test2(&method(:content_tag)) 
+0

但我不想把它,我要檢查它,它需要調用它與論據? –

+0

@Alex你想要檢查什麼?如果你想檢查它的結果,那麼是的,當然它需要調用這個方法。 –

+0

它的類,如果它是lambda或proc。 –

相關問題