Ruby:语法名称:变量

时间:2016-07-22 17:06:18

标签: ruby-on-rails ruby

我通过一些例子来学习rails。这是我的示例模型文件:

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
end

我不知道的红宝石语法是:

 devise :database_authenticatable, :registerable,
             :recoverable, :rememberable, :trackable, :validatable

经过一些研究,我知道上面的命令使用了红宝石的诗歌模式,它意味着没有括号的方法。所以上面的命令应该是:

devise(:database_authenticatable, :registerable,
             :recoverable, :rememberable, :trackable, :validatable)

我仍然不明白:variable的语法名称是什么。我搜索过但只知道@variable@@variable代表类......

由于

3 个答案:

答案 0 :(得分:1)

任何以:开头的单词称为symbol。正如@Holger在他的评论中提到的,符号是(在其最简单的形式)一个不可变的字符串。

符号最常用作Hash中的键和引用键:

hash = { key: "value" }
然后可以通过将哈希的键作为符号来引用

"value"

hash[:key]
=> "value"

答案 1 :(得分:1)

这些被称为符号。 更多这里

  

http://ruby-doc.org/core-2.2.0/Symbol.html

答案 2 :(得分:1)

我并不严格确定这是您要找的内容,但:前面的任何字符串都是Symbol

总而言之,符号就像一个字符串,除了每个提到相同的符号文字是对同一个不可变的基础值的引用。在这种情况下,这些符号中的每一个(:database_authenticable:registerable等......)都将特定值作为函数devise的参数给出,可能设置了它的某些属性。