什么':'代表Ruby On Rails?

时间:2011-10-13 12:44:20

标签: ruby symbols

我刚开始学习Ruby并在项目中使用以下代码:

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

这是做什么的? :login和其他所有事情都来自哪里?

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

有人可以帮帮我吗?因为我无法在网上找到这个。

3 个答案:

答案 0 :(得分:3)

简短的回答是:

“':'表示Ruby符号'


中长答案会增加:

符号是不可变对象,在重要方面与字符串不同。


真实答案:
你将不得不学习Ruby来学习Rails。我也觉得我可以选择Rails并将Ruby作为我的另一种语言。我错了。 Ruby是不同的。我可以指出它是如何被解释并利用开放类的,但这并不是你在使用Ruby和Rails“学习”时遇到麻烦的真正原因.Ruby允许一种语法重载,有些调用'syntactic sugar'这是让Ruby代码更短,更易读的一种方法。它还会阻碍你从你看到的代码中简单地推断出功能的能力。你会看到许多精心构思的Rails例子让你感到困惑并最终感到沮丧。例子看起来简洁而神秘,你可能会想,“他们为什么不让它更直观?”答案是很多人也会看到那些相同的例子并说“这是好的Ruby。”他们有他们的理由。 / p>

补救措施:
读。 http://www.manning.com/black2/http://pragprog.com/book/ppmetr/metaprogramming-ruby此导册书http://pragprog.com/book/rails4/agile-web-development-with-rails以及这些指南http://guides.rubyonrails.org/随后将我带到了我需要去的地方。

什么使这一点最好?如果你还没有,请完成这个优秀的教程http://ruby.railstutorial.org/ruby-on-rails-tutorial-book这是我读过的最好的编程教程之一。它很好地涵盖了Rails并且说了一些关于Ruby的东西。然而,它失败了。如果它是您工作的唯一来源,那么您将无法了解足够的Ruby以便能够生成自己的代码。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

USER_ATTRS是一个包含符号数组的常量 - 您可以将符号视为不可变的字符串。很难说为什么它在你的程序中,请插入更多的源代码以获得更好的anwser。但对我来说,正如名称所说,这个符号表示用户属性,存储在一个地方,以便make程序更清洁。