ruby-on-rails - Ruby on Rails- :symbols, @iVars 和 "strings"- 天啊!

标签 ruby-on-rails ruby string symbols instance-variables

Rails 新手,想弄明白什么时候/为什么要在框架。

我想我从概念上理解了它们之间的区别

  • 每个项目只有一个:symbol实例
  • 每个实例一个@ivar
  • 多个 “strings” - 因为它们是在引用时创建的 (?)

随时纠正我!

主要的困惑来自理解 Rails 期望的规则约定 - 在哪里以及为什么?

我敢肯定会有一个“啊哈!”时刻即将到来,但我还没有……因为它对我来说似乎很随意(来自 C/Obj-C)。

-谢谢

最佳答案

@instance_variable 是一个实例变量。它通常在 Controller 中定义并可在 View 中访问。

"string" 是一个字符串,就像在任何其他语言中一样。

:symbol,正如您所提到的,它是一种表示名称和字符串的有效方式;它们是文字值。它在 ruby​​ session 期间被初始化并且只存在一次。它不是字符串,因为您无权访问 String 方法;这是一个符号。最重要的是,它是不可变的。由于这些原因,在哈希中表示键变得非常方便。 Rails 方法使用散列,因此在 Rails 中随处可见符号。

关于ruby-on-rails - Ruby on Rails- :symbols, @iVars 和 "strings"- 天啊!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2999875/

相关文章:

ruby - 我如何在 Heroku 上使用 rdiscount?

java - 以编程方式搜索博客、论坛、新闻站点

c# - 命令行参数分隔符以及如何在 C# 中检查它

ruby-on-rails - 影响 aws-sdk ruby​​ gem url_for 方法的文件名中的特殊字符

ruby-on-rails - mocha 是否在 stub (Rails)中运行代码?

ruby-on-rails - 如何在 ruby​​ 中禁用自动日志记录

java - 将 python stdout 读取为字符串

java - 为什么我的字符串返回为空字符串?(JAVA)

ruby-on-rails - 如何判断 Rails Action 邮件发送是否失败?

ruby-on-rails - Rails 测试找不到 test_helper