开发者

What do these weird characters mean?

开发者 https://www.devze.com 2023-03-09 04:47 出处:网络
I\'m reading a Ruby book but it doesn\'t explain the following: What is this: validates :name,:presence => true

I'm reading a Ruby book but it doesn't explain the following:

  1. What is this: validates :name, :presence => true

    • I 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?

  2. In the following code: <%= form_for([@post, @post.comments.build]) do |f| %>

    • Is form_for an object or a procedural function?

    • What's the meaning of the | character in |f|

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


  1. validates is 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.
  2. form_for is a method, which takes a number of parameters and a block (that is why there is a do afterwards). The | is part of Ruby syntax, the way you enclose code block parameters.
  3. edit_post_path is 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.

0

精彩评论

暂无评论...
验证码 换一张
取 消