Rails def初始化slug解释

时间:2014-08-27 10:12:42

标签: ruby-on-rails initialization

我正在尝试学习Rails和我下载的其中一个文件,我可以看到:

注意:此文件位于模型下。

def initialize slug
    api_call "http://yourwebsiteurl.com/REST/" + slug.to_s
end

这是什么意思?它是否像Java中的构造函数?

优素福

1 个答案:

答案 0 :(得分:2)

正如评论中所回答的那样,initiailze方法是Ruby的新对象构造方法。也就是说,当您在某个对象上调用new时,它会转过来并调用initialize

但是,既然你是Ruby的新手,我还想指出代码的风格问题。写这个方法的惯用Ruby方法是:

def initialize(slug)
  api_call "http://yourwebsiteurl.com/REST/#{slug}"
end

差异在于:

  1. 始终在方法参数周围使用括号
  2. 始终使用2个空格进行缩进
  3. 首先对字符串连接("#{}")进行字符串插值(+)以插入变量,因为它更容易且性能更高
  4. 虽然这些有点武断,但它们仍然被广泛接受。请参阅GitHub Ruby Style Guide