gpt4 book ai didi

ruby - :this means in Ruby on Rails? 是什么

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:57 24 4
gpt4 key购买 nike

我是 Ruby 和 Ruby on Rails 世界的新手。我已经阅读了一些指南,但我在使用以下语法时遇到了一些麻烦。我认为在 Ruby 中使用 :condition 语法来定义具有某种访问器的类属性,例如:

class Sample
attr_accessor :condition
end

隐式声明“条件”属性的 getter 和 setter。当我查看一些 Rails 示例代码时,我发现以下示例我并不完全理解。

例如:

@post = Post.find(params[:id])

为什么它使用这种语法访问 id 属性,而不是:

@post = Post.find(params[id])


或者,例如:

@posts = Post.find(:all) 

:all 是常量吗?如果不是,这段代码的真正含义是什么?如果是,为什么不使用以下内容:

@posts = Post.find(ALL)

谢谢

最佳答案

文本前的冒号表示 Ruby 中的符号。一个符号有点像一个常量,但它几乎就像一个符号接收一个唯一值(你不关心)作为它的常量值。

当用作哈希索引时,符号几乎(但不完全)与使用字符串相同。

此外,您可以通过调用符号上的 to_s:all 中读取“all”。如果您有一个常量变量 ALL,除了查找它的值外,没有其他方法可以确定它是否表示“全部”。这也是您可以使用符号作为元方法参数的原因,例如 attr_accessorattr_reader 等。

您可能想要 read up on Ruby symbols .

关于ruby - :this means in Ruby on Rails? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2804798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com