Rails通过Model设置基于同一记录中另一个字段的字段值

时间:2013-04-26 21:05:23

标签: ruby-on-rails

我有一个名为Contacts的表。它的两个列称为email和maxname。创建联系人后,我会将maxname设置为电子邮件字段中@之前的文本。所以,如果一个新的联系人是jebb@gmail.com,那么他的maxname应该是jebb。

仅仅是为了测试我试图将整个电子邮件放入maxname(在我弄清楚如何解析电子邮件文本之前)。

所以,在联系人模型中,我把这段代码:

  before_create :set_maxname
  before_update :set_maxname

  protected
  def set_maxname
    self.maxname = self.email
  end

有效。但是,我如何解析self.email所以我只是在@ ??

之前获得了部分

感谢您的帮助!!

2 个答案:

答案 0 :(得分:1)

在我的头顶,做self.email.split('@')[0]会有效。

编辑:此外,在这个例子中,自我并不是必需的。它是明确的,但不是必需的。

答案 1 :(得分:0)

或者你可以使用,

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