I'm reading a Ruby book but it doesn't explain the following:
What is this:
validates :name, :presence => trueI mean I know what it does but what's
validates? Is it a method of the validator class? If so, how come it's called without mentioning the class name first?What's the meaning of
:in the previous code and in Rails on general?
In the following code:
<%= form_for([@post, @post.comments.build]) do |f| %>Is
form_foran object or a procedural function?What's the meaning of the
|character in|f|
In
<%= link_to 'Edit Post', edit_post_path(@post) %>Who, where and when was
edit_post_pathme开发者_开发知识库thod defined?To which class it belongs?
validatesis a method, part of the validators in Rails. It is declared in (actually, included to) a superclass, that is why it does not have to be declared in the model. The:in front of anything signifies a symbol, not a variable. Symbols are part of Ruby, somewhat similar to strings.form_foris a method, which takes a number of parameters and a block (that is why there is adoafterwards). The|is part of Ruby syntax, the way you enclose code block parameters.edit_post_pathis defined by the Rails magic and the routes. It is a helper method.
I encourage you to read this book about Ruby to get more familiar with symbols, code blocks, modules and other things that make Ruby a great programming language.
加载中,请稍侯......
精彩评论