这些奇怪的字符是什么意思?

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

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

    • 我的意思是我知道它的作用但是什么是validates ? 它是validation器类的方法吗? 如果是这样的话,怎么在没有提到类名的情况下调用呢?

    • 是什么意思:在前面的代码和Rails中一般?

  2. 在以下代码中:

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

    • 什么是|的含义 |f|字符

    • 谁,何时何地定义了edit_post_path方法?

    • 它属于哪个class级?

  1. validates是一种方法,是Rails中validation器的一部分。 它在(实际上包含在)超类中声明,这就是为什么它不必在模型中声明。 :在任何东西前面都表示符号,而不是变量。 符号是Ruby的一部分,有点类似于字符串。
  2. form_for是一个方法,它采用了许多参数和一个块(这就是为什么之后有一个do )。 | 是Ruby语法的一部分,是封装代码块参数的方式。
  3. edit_post_pathRails魔术和路线定义。 这是一种帮助方法。

我鼓励你阅读这本关于Ruby的书 ,以便更熟悉符号,代码块,模块和其他使Ruby成为优秀编程语言的东西。