我正在阅读一本Ruby书,但它没有解释以下内容:
这是什么:validates :name, :presence => true
我的意思是我知道它的作用但是validates
是什么?它是验证器类的方法吗?如果是这样,为什么不首先提到类名呢?
上一代码和一般的Rails中:
的含义是什么?
在以下代码中:<%= form_for([@post, @post.comments.build]) do |f| %>
form_for
是对象还是程序函数?
|
|f|
字符的含义是什么?
在<%= link_to 'Edit Post', edit_post_path(@post) %>
是谁,何时何地定义edit_post_path
方法?
它属于哪个班级?
答案 0 :(得分:6)
validates
是一种方法,是Rails中validators的一部分。它在(实际上包含在)超类中声明,这就是为什么它不必在模型中声明。任何东西前面的:
表示符号,而不是变量。符号是Ruby的一部分,有点类似于字符串。form_for
是一种方法,它采用了许多参数和一个块(这就是之后有do
的原因)。 |
是Ruby语法的一部分,就是您封装代码块参数的方式。edit_post_path
由 Rails魔术和路线定义。这是一种帮助方法。我鼓励您阅读有关Ruby的this book,以便更熟悉符号,代码块,模块以及使Ruby成为优秀编程语言的其他内容。