我对以下Ruby函数定义感到有点困惑。我是否声明了对象的功能或属性?
def project_params
params.require(:project).permit(:name)
end
如果我宣布某项功能,project_params
如何知道return
结果?我习惯了被评估的内容,但似乎Rails会返回结果。
答案 0 :(得分:3)
Ruby会自动返回方法中最后执行的表达式的结果。
答案 1 :(得分:1)
Ruby没有属性。对象只有(外部)方法,并且Ruby中的所有方法都将返回最后一个语句的值,除非您明确return
。
Ruby确实有实例变量,例如@foo
和@bar
,但这些仅在内部访问。它们只是变量,其范围设置为实例。类变量,例如:@@foobar
的范围限定在类中。
Ruby Programming Wikibook中有关于Ruby方法的一些很好的信息。
快乐的编码!