OmniAuth gives you all the names combined on one line. But some people have more than two words of names, such as "John Clark Smith." You can consider them in three ways:
(1) first_name: "John", last_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: "John Clark", last_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: "John", last_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
The above examples assume that if the name contains less than 2 words, then this name. This question is similar to this.
source share