我决定在api.rubyonrails.org中测试所有方法。我开始(没有理由):
def attribute_missing(match, *args, &block)
__send__(match.target, match.attr_name, *args, &block)
end
这个功能期待什么数据?有人可以用预先填充的参数给我一个真实的这个函数的例子吗?我还需要一种方法来测试每个Rails类实例方法,如#attribute_missing,"rails console"
命令?非常感谢!我认为这是通过rails API并了解其功能的最佳方式。如果我错了,请纠正我。
答案 0 :(得分:0)
此方法的参数可以这样解释:
match
:此方法唯一必需的参数。无论是谁调用此方法,至少需要提供match
参数。
*args
:args
将包含传递给此方法的所有其他参数。这意味着用5个参数调用attribute_missing
将导致match
包含第一个参数,args
是包含传递的其他参数的4个元素数组。 *
称为splat运算符。在方法声明中使用splat将导致使用splat(在本例中为args
)的任何参数捕获传递给方法的所有其他参数。
&block
:如果此方法传递了一个块,您可以使用block.call
来调用它。
我个人不建议通过Rails API的每个方法来学习它。我会找到一个教程,可以让您开始使用Rails编写应用程序,然后在使用它时探索函数在API中的工作方式。