вызов метода в определении класса?

class Person < ActiveRecord::Base
  validates :terms_of_service, :acceptance => true
end

В вышеупомянутом, что являетсяvalidates с точки зрения Ruby? Это не методопределение, это не определение данных или объявление, так что, очевидно, это методвызовпрямо в теле класса. Я никогда не видел, чтобы метод вызывался подобным образом непосредственно в классе (то есть вне определения метода), даже в учебнике по программированию на Ruby, который я сейчас прохожу:http://ruby-doc.org/docs/ProgrammingRuby/.

Итак, если это вызов метода, в какой момент он вызывается. Я попробовал следующее в качестве теста:

class Person   

  print "cat"

end

#p = Person.new
#q = Person.new

print "cat" выполняется ровно один раз, независимо от того, объявляются ли какие-либо реальные объекты Person, или нет, так что, очевидно, просто при синтаксическом анализе определения класса, Ruby видит метод print и говорит: «Хорошо, я просто продолжу и выполню это сейчас», но никогда не делает так опять

Так где же документация по Ruby, которая поможет мне понять, что происходитvalidates выше

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос