Я пытался посмотреть, смогу ли я передать атрибуты переменной экземпляра, используя простое выражение do.
do
class Dog def initialize(name, age) @name = name @age = age end def bark puts 'Woof' puts 'Woof' puts 'Woof' end end bo = Dog.new do |word| word.bark end
Почему он возвращает идентификатор класса вместо вывода функции?
Как предлагается в комментариях, передача блока в оператор new не имеет смысла.
new
Вы можете изменить свой код на:
bo = Dog.new('Rusty', 3).tap do |word| word.bark end
, и он будет лаять, как ожидается.:)