依据方法作用的对象不同,有分实体方法(instance method)及类别方法(class method),举个例子来说:
kitty = Cat.new("kitty", "female")
kitty.say_hello
这个 say_hello 是作用在 kitty 这个「实体」,所以称这个 say_hello 为实体方法。如果是这样:
class PostsController < ApplicationController
def index
@posts = Post.all # 取得所有的 Post 资料
end
end
这里的 all 方法是直接作用在 Post 这个「类别」上,故称之类别方法。在 Ruby 要定义类别方法有几种写法,其中一种比较简单的,就是在前面加上 self:
class Cat
def self.all
end
end
这样就可以直接用 Cat.all 的方式呼叫了。下面是另一种写法:
class Cat
class << self
def all
# ...
end
end
end
这样的写法跟前面的一样,但这样就不需要特别在方法前面加上 self。当一个类别里面有很多类别方法的时候,我常会选择这样的写法。
[为你自己学Ruby on Rails]https://railsbook.tw/chapters/08-ruby-basic-4.html
<<: Spring Framework X Kotlin Day 4 MVC
>>: 每个人都该学的30个Python技巧|技巧 9:快速建立数列—range函式(字幕、衬乐、练习)
完赛了,下次再出现决定要写进阶/实务上的内容,再分享给各位 :) 刚刚看完後觉得文章内容还可以再补...
是我们今天要聊的内容,老样的,如果你已经可以轻松看懂,欢迎直接左转去看同事 Ken 精彩的文章 —...
今天来说如何在css中使用圆角的效果,我依旧使用昨天的粉色方块,在粉色方块的css中枢日以下程序码 ...
<!DOCTYPE html> <html lang="en"...
偷看一下专案长怎样 我预期的专案想要完成这几件事: 取得八卦版每篇文章的标题、作者和发文时间。 取...