【问题标题】:What do these weird characters mean?这些奇怪的字符是什么意思?
【发布时间】:2011-05-31 09:23:38
【问题描述】:

我正在阅读一本 Ruby 书籍,但它没有解释以下内容:

  1. 这是什么:validates :name, :presence => true

    • 我的意思是我知道它的作用,但validates 是什么?它是验证器类的方法吗?如果是这样,为什么不先提类名就调用它?

    • : 在之前的代码和 Rails on 中是什么意思?

  2. 在以下代码中:<%= form_for([@post, @post.comments.build]) do |f| %>

    • form_for 是对象还是程序函数?

    • |f|中的|字符是什么意思

  3. <%= link_to 'Edit Post', edit_post_path(@post) %>

    • edit_post_path 方法定义的对象、地点和时间?

    • 它属于哪个类?

【问题讨论】:

  • 先生。邻居的谦逊小红宝石书
  • 这些问题在Rails 3 in Action 中得到了解答,这是一本Rails 3 的初学者-> 中级书籍。应该能让您快速了解这些内容。
  • @emurad 嗯嗯嗯,它很快就扫描了一遍,根本没有提到 ruby​​ 中 symbol 的概念。如果你想学习 ruby​​,我推荐“The Wellgrounded Rubyist”,并学习 Rails“Agile Webdevelopment with Rails”。这些是让你开始的最好的恕我直言。
  • 感谢 Ryan 和 nathanvda,我也会研究这些资源。
  • @Ryan Bigg:标记为垃圾邮件! :)

标签: ruby-on-rails ruby symbols block


【解决方案1】:
  1. validates 是一个方法,是 Rails 中 validators 的一部分。它在(实际上,包含在)超类中声明,这就是为什么它不必在模型中声明的原因。任何东西前面的: 表示一个符号,而不是一个变量。符号是 Ruby 的一部分,有点类似于字符串。
  2. form_for 是一个方法,它接受一些参数和一个块(这就是为什么后面会有一个do)。 | 是 Ruby 语法的一部分,即包含代码块参数的方式。
  3. edit_post_pathRails 魔法 和路线定义。这是一个辅助方法。

我鼓励您阅读this book 以了解 Ruby,以更熟悉符号、代码块、模块和其他使 Ruby 成为出色编程语言的东西。

【讨论】:

  • 感谢推荐书。我读完当前的之后再看。
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 2014-04-28
  • 2012-07-10
  • 1970-01-01
相关资源
最近更新 更多