fen*_*nec 3 ruby syntax ruby-on-rails
我正在开发一个Rails应用程序,并想了解何时使用self.for
.
这是我想要完全理解的方法的代码.如果有可能,我希望有一个替代这个代码,这样可以使事情更清楚.
def self.for(facebook_id)
User.create_by_facebook_id(facebook_id)
end
Run Code Online (Sandbox Code Playgroud)
Lar*_*y K 10
self指的是当前对象.
在类中,self用于定义类级方法.
class Foo
def self.for(facebook_id)
User.create_by_facebook_id(facebook_id)
end
end
Run Code Online (Sandbox Code Playgroud)
定义了一类方法对在类Foo.它被调用:
Foo.for(facebook_id)
Run Code Online (Sandbox Code Playgroud)
您可以谷歌获取课程方法以了解更多信息.
可能是Rails或插件/ gem的一部分期望某些类将具有"for"类方法.在这方面,更多上下文将是有帮助的.
该方法正在做什么
正如类方法所常见的那样,它正在创建一个类的实例.例如,ActiveRecord类有一个类方法"create",它尝试创建已存储在数据库中的模型类的实例.因此,User.create将返回已存储在数据库中的User类的实例.
在您的示例代码中,它调用由应用程序中的User类提供的类方法"create_by_facebook_id".
看起来像"for"方法被用于信息隐藏,因为它所做的只是进行另一个方法调用(到User.create_by_facebook)
添加:
顺便说一下,Ruby方法的默认返回值是最后一个语句的值.因此,您的示例方法将返回从提供的facebook_id新创建的用户实例.
归档时间: |
|
查看次数: |
760 次 |
最近记录: |