我通过一些例子来学习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
代表类......
由于
答案 0 :(得分:1)
任何以:
开头的单词称为symbol。正如@Holger在他的评论中提到的,符号是(在其最简单的形式)一个不可变的字符串。
符号最常用作Hash中的键和引用键:
hash = { key: "value" }
然后可以通过将哈希的键作为符号来引用 "value"
:
hash[:key]
=> "value"
答案 1 :(得分:1)
这些被称为符号。 更多这里
答案 2 :(得分:1)
我并不严格确定这是您要找的内容,但:
前面的任何字符串都是Symbol。
总而言之,符号就像一个字符串,除了每个提到相同的符号文字是对同一个不可变的基础值的引用。在这种情况下,这些符号中的每一个(:database_authenticable
,:registerable
等......)都将特定值作为函数devise
的参数给出,可能设置了它的某些属性。