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

emu*_*rad 2 ruby symbols ruby-on-rails block

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

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

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

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

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

    • form_for对象还是程序函数?

    • 这个|角色的含义是什么?|f|

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

    • edit_post_path方法定义的人,地点和时间?

    • 它属于哪个班级?

Sor*_*row 6

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

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