OmniAuth дает вам все имена, объединенные в одну строку. Но у некоторых людей есть имена, состоящие более чем из двух слов, например, «Джон Кларк Смит». Вы можете относиться к ним тремя различными способами:
(1) first_name: "Джон", фамилия: "Smith"
def first_name
if name.split.count > 1
name.split.first
else
name
end
end
def last_name
if name.split.count > 1
name.split.last
end
end
(2) first_name: "Джон Кларк", фамилия: "Smith"
def first_name
if name.split.count > 1
name.split[0..-2].join(' ')
else
name
end
end
def last_name
if name.split.count > 1
name.split.last
end
end
(3) first_name: "Джон", фамилия: "Clark Smith"
def first_name
name.split.first
end
def last_name
if name.split.count > 1
name.split[1..-1].join(' ')
end
end
В приведенных выше примерах предполагается, что если имя содержит менее 2 слов, то это имя. Этот вопрос похож на этот