【发布时间】:2011-10-13 12:44:20
【问题描述】:
我刚开始学习Ruby,项目中有如下代码:
USER_ATTRS = [:login, :password, :lastname, :firstname, :mail, :admin]
这是做什么的? :login 和其他所有东西是从哪里来的?
它们只是类(可能是用户)的属性吗?
有人可以帮帮我吗?因为我在网上真的找不到这个。
【问题讨论】:
我刚开始学习Ruby,项目中有如下代码:
USER_ATTRS = [:login, :password, :lastname, :firstname, :mail, :admin]
这是做什么的? :login 和其他所有东西是从哪里来的?
它们只是类(可能是用户)的属性吗?
有人可以帮帮我吗?因为我在网上真的找不到这个。
【问题讨论】:
简短的回答是:
"':' 表示 Ruby 符号'
中等长度的答案会添加:
符号是在重要方面不同于字符串的不可变对象。
真正的答案:
你必须学习 Ruby 才能学习 Rails。我还以为我可以选择 Rails 并让 Ruby 成为我掌握的另一种语言。我错了。红宝石不一样。我可以指出它是如何被解释并使用开放类的,但这并不是你在使用 Ruby 和 Rails 时“像你一样学习”时也会遇到麻烦的真正原因。Ruby 允许某种语法重载,有人称之为'语法糖' 这是使 Ruby 代码更短、更易读的一种方法。它还会阻碍你从看到的代码中简单地推断出功能的能力。你会看到许多构思良好的 Rails 示例,它们会让你感到困惑并最终感到沮丧。这些示例看起来简洁而神秘,您可能会想,“为什么不让它更直观?”答案是很多人也会看到相同的示例并说,“那是好的 Ruby。”他们有他们的理由。
补救措施:
读。 http://www.manning.com/black2/ and and and http://pragprog.com/book/ppmetr/metaprogramming-ruby this rails book http://pragprog.com/book/rails4/agile-web-development-with-rails and these guides http://guides.rubyonrails.org/ 然后把我带到了我需要去的地方。
什么使这一点最好?如果您还没有,请完成这个出色的教程http://ruby.railstutorial.org/ruby-on-rails-tutorial-book 这是我读过的最好的 编程教程之一。它很好地涵盖了 Rails,并谈到了一些关于 Ruby 的事情。然而,它失败了。如果它是您工作的唯一来源,那么您对 Ruby 的了解将不足以发展到可以生成自己的代码的程度。
【讨论】:
USER_ATTRS 是一个包含符号数组的常量 - 您可以将符号视为不可变字符串。很难说它为什么在你的程序中,请插入更多源以获得更好的答案。但对我来说,顾名思义,这个符号表示用户属性,存储在一个地方以使程序更清晰。
【讨论】: