【发布时间】:2012-04-30 04:47:06
【问题描述】:
例如我有这样的课:
class QueryDSL
def initialize(&block)
instance_eval &block
end
def ==(value)
"bla bla '#{value}'"
end
def test(param)
param + param
end
end
和类查询类似:
class Query
def self.where(&block)
QueryDSL.new(&block)
end
end
我怀疑执行时:
Query.where{test == 9}
输出应该是:
"bla bla 9 bla bla 9"
但我有例外:
`test': wrong number of arguments (0 for 1) (ArgumentError)
我的代码有什么错误吗?谢谢
【问题讨论】:
标签: ruby closures metaprogramming block dsl