我是 Ruby 和 Ruby on Rails 世界的新手。我已经阅读了一些指南,但我在使用以下语法时遇到了一些问题。
我认为使用:condition
Ruby 中使用语法来定义具有某种访问器的类属性,例如:
class Sample
attr_accessor :condition
end
隐式声明“条件”属性的 getter 和 setter。
当我查看一些 Rails 示例代码时,我发现以下示例我并不完全理解。
例如:
@post = Post.find(params[:id])
为什么它访问id
使用此语法的属性,而不是:
@post = Post.find(params[id])
或者,例如:
@posts = Post.find(:all)
Is :all
这里是一个常数?如果不是,这段代码的真正含义是什么?如果是,为什么不使用以下内容:
@posts = Post.find(ALL)
Thanks
文本前的冒号表示symbol在红宝石中。符号有点像常量,但它几乎就像符号接收一个唯一值(您不关心)作为其常量值。
当用作哈希索引时,符号几乎(但不完全)与使用字符串相同。
另外,您可以阅读“全部”:all
通过致电to_s
符号上。如果你有一个常量变量ALL
,除了查找其值之外,无法确定它是否表示“全部”。这也是为什么您可以使用符号作为元方法的参数,例如attr_accessor
, attr_reader
,等等。
你可能想要阅读 Ruby 符号 https://web.archive.org/web/20080912225757/http://glu.ttono.us/articles/2005/08/19/understanding-ruby-symbols.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)