ArrayIndexOutOfBoundsException
само имя объясняет, что если вы пытаетесь получить доступ к значению в индексе, который выходит за рамки размера массива, возникает такое исключение.
В вашем случае вы можете просто удалить знак равенства из цикла for.
for(int i = 0; i<name.length; i++)
Лучшим вариантом является итерация массива:
for(String i : name )
System.out.println(i);
Нет, все методы модуля существуют в пространстве имен класса. Следовательно, это не похоже на особенно полезный вариант для модулей.
Вы могли бы дать методам имена, специфичные для модуля (client_wizard_step_one_completed?
), но я бы рекомендовал вместо этого определять мастеров как отдельные классы , и передачу экземпляра пользователя в качестве параметра.
class User < ApplicationRecord
def client_wizard
ClientWizard.new(self)
end
end
class ClientWizard
def initialize(user)
@user = user
end
def step_one_completed?
@user.name.present?
end
end