Есть комплексная форма Заказа, которая принадлежит Клиенту и Адресу. Соответственно в контроллере:
def new
@order = Order.new
@order.build_kls_client
@order.build_kls_address
end
Так как Клиент и Адрес во вкладках, то стоит задача маркировки соответствующей вкладки если соответствующая модель провалит валидацию. Для этого надо понять в каких зависимых моделях ошибки.
Написал такую строку:
o.errors.messages.keys.collect(&:to_s).select { |v| v.split('.')[1] }.map { |x| x.split('.')[0]}.uniq
Насколько она близка к говнокоду? И можно ли как-то проще достать эти имена?