如何保存用户名的小写版本?

时间:2013-10-11 17:39:14

标签: ruby-on-rails ruby devise

如何保存用户名的小写版本?我正在尝试做“How do I handle uppercase and lowercase characters in a custom url?”中的说法。

我想在两个不同的列中保存小写和区分大小写的用户名版本。

谢谢。

3 个答案:

答案 0 :(得分:2)

您可以在模型中添加类似的内容,其中lower_username是表格中的其他用户名列。

#Simply populates the field on the database

before_save :downcase_username

#If you have validation of the username (ie must be a unique field),
#you may want to assign the lowercase username before the validation occurs.

before_validation :downcase_username

创建私有方法以填充小写用户名列

private

def downcase_username
  self.lower_username = self.username.downcase
end

答案 1 :(得分:1)

# in user model
before_validation :generate_lowercase_username

private
  def generate_lowercase_username
    self.lowercase_username = username.downcase
  end

答案 2 :(得分:0)

@user.username = "AbCd"
@user.lowercase_username = @user.username.downcase
@user.save