вызов метода в определении класса?
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
выше
Благодарю.