2013-04-26 84 views
0

基於同一記錄中的另一個字段設置字段的值我有一個名爲Contacts的表。它的兩列是email和maxname。創建聯繫人時,我會在電子郵件字段中的@之前設置maxname。所以,如果一個新的聯繫人是[email protected],那麼他的maxname應該是jebb。Rails通過模型

只是爲了測試我試圖把整個電子郵件成maxname(在我弄清楚如何解析電子郵件文本之前)。

所以,在聯繫人模式,我把這個代碼:

before_create :set_maxname 
    before_update :set_maxname 

    protected 
    def set_maxname 
    self.maxname = self.email 
    end 

工程。但是,我怎麼能解析self.email,所以我只是得到了@之前的部分?

感謝您的幫助!

+0

究竟不起作用?它保存的記錄呢? – iltempo 2013-04-26 21:10:31

+0

等一下 - 它確實有效。我有一個錯字 – Reddirt 2013-04-26 21:16:29

+0

任何想法如何我可以解析self.email,所以我只是得到的部分之前,?? – Reddirt 2013-04-26 21:17:08

回答

1

關閉我的頭頂,做self.email.split('@')[0]將工作。

編輯:此外,在這個例子中,自我並不是真的需要。這是明確的,但不是必需的。

+0

謝謝 - 非常棒! – Reddirt 2013-04-26 22:48:46

0

或者你可以使用,

self.email.gsub(/@.*/,'')