現在我使用設計,並有兩個領域。 fname和lname。在設計用戶模型中創建FullName方法?
我希望能夠將full_name字段添加到用戶模型中。然後,用戶模型將採用full_name字段並通過分隔空間來提取fname和lname。如果有多個空間全部轉到fname並且最後一個項目是最後一個名稱,然後使用提取的fname和lname字段將其保存到用戶模型中。
這可能沒有黑客設計?
感謝
現在我使用設計,並有兩個領域。 fname和lname。在設計用戶模型中創建FullName方法?
我希望能夠將full_name字段添加到用戶模型中。然後,用戶模型將採用full_name字段並通過分隔空間來提取fname和lname。如果有多個空間全部轉到fname並且最後一個項目是最後一個名稱,然後使用提取的fname和lname字段將其保存到用戶模型中。
這可能沒有黑客設計?
感謝
你並不需要破解了色器件PerSay的,只是做在你的用戶模型(或任何模式你usuing爲您devise_for
class User
def fullname
self.fname << " " << self.lname
end
def fullname=(fname)
names = fname.split(/(.+) (.+)$/)
self.fname = names[0]
self.lname = names[1]
end
end
未經檢驗或關閉頂部我頭,但它應該是一個開始....
我不建議存放全名,只是使用它像一個輔助功能,但最多也就是你。
兩個當前答案的問題是,他們不處理三個(+)單詞名稱,如比利鮑勃桑頓。
'Billy Bob Thornton'.split(/(.+) (.+)$/) => ["", "Billy Bob", "Thornton"]
'Billy Bob Thornton'.split(' ', 2) => ["Billy", "Bob Thornton"]
原始發佈請求除姓的全部轉到名字。所以我建議:
def full_name
[first_name, last_name].join(' ')
end
def full_name=(name)
elements = name.split(' ')
self.last_name = elements.delete(elements.last)
self.first_name = elements.join(" ")
end