【问题标题】:What does ':' stand for in Ruby On Rails?':' 在 Ruby On Rails 中代表什么?
【发布时间】:2011-10-13 12:44:20
【问题描述】:

我刚开始学习Ruby,项目中有如下代码:

USER_ATTRS = [:login, :password, :lastname, :firstname, :mail, :admin]

这是做什么的? :login 和其他所有东西是从哪里来的?

它们只是类(可能是用户)的属性吗?

有人可以帮帮我吗?因为我在网上真的找不到这个。

【问题讨论】:

标签: ruby symbols


【解决方案1】:

简短的回答是:

"':' 表示 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 的了解将不足以发展到可以生成自己的代码的程度。

【讨论】:

  • 他在任何地方都没有提到 Rails。是什么让您认为他想学习 Rails?
  • 米莎,你是对的。我确实假设 Rails 在这里。当然还有其他可能性需要考虑。如果讨论朝着非轨道方向发展,我将删除我的答案。谢谢 - 佩里
  • :-) 查看原始(编辑前)版本。我想我的答案仍然存在。我想我会在原始问题中留下一些编辑。
  • 你说得对,他在最初的问题中谈到了学习 Rails。我会删除我原来的评论,但是你的 cmets 不再有意义了 ;-)
  • 我觉得你说得对,我只要一路学Ruby就好了。因为我想实现一些东西,但我真的没有能力做到这一点。还是谢谢!
【解决方案2】:

他们被称为symbols。您可以找到符号 here 的 API 参考。 this link 也可能有帮助。正如 Slawosz 所说,从这一行代码中很难说出它的来源和作用。

【讨论】:

  • ...并且是 USER_ATTRS 数组的一部分。
【解决方案3】:

USER_ATTRS 是一个包含符号数组的常量 - 您可以将符号视为不可变字符串。很难说它为什么在你的程序中,请插入更多源以获得更好的答案。但对我来说,顾名思义,这个符号表示用户属性,存储在一个地方以使程序更清晰。

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2010-12-28
    • 2010-11-17
    • 2011-02-17
    相关资源
    最近更新 更多