2011-06-18 12 views
2

今私は工夫をして2つのフィールドを持っています。 fnameとlname。Devise User ModelでFullNameメソッドを作成していますか?

ユーザーモデルにfull_nameフィールドを追加する機能が必要です。その後、ユーザーモデルはfull_nameフィールドをとり、スペースで分割してfnameとlnameを抽出します。すべてがfnameに移動する複数のスペースがあり、最後の項目が最後の名前である場合、fnameとlnameの抽出されたフィールドを持つユーザーモデルに保存されます。

ハッキングアップなしで可能ですか?あなたは自分のユーザーモデルでそれを行う(または、あなたの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 
テストされていない

と上から私のようusuingされているものは何でもモーダル、工夫のpersayをハックする必要はありません

おかげ

答えて

3

頭が、それは、開始する必要があります....

私はヘルパー関数のようにそれを使用し、フルネームを格納示唆していますが、それはあなた次第です。

3

両方の現在の回答の問題は、Billy Bob Thorntonのような3つの(+)単語名を処理しないことです。

元の投稿では、姓を除くすべての名前が姓になります。だから、私は示唆したい:

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 
関連する問題