用户模型中的一个变量是Traceback (most recent call last):
File "examples/golomb8.py", line 26, in <module>
from google.apputils import app
ImportError: No module named google.apputils
。我想保留以“vondel”开头的用户名。因此,我想让username
以“vondel”开头无效。我怎么能这样做?
以下是我在username
上设置验证的尝试。但是,仍然可以生成以“vondel”开头的username
,并且不会生成错误消息。有没有办法用正则表达式做到这一点?
username
答案 0 :(得分:3)
最直接的方法是使用starts_with?
方法:
test_string = "vondelfoo"
test_string.starts_with?("vondel") # => true
除此之外,我建议您学习如何使用正则表达式执行此操作。正则表达式是一个非常宝贵的工具,你一定要学会如何使用它们。
另外一个提示 - 我已经听说Rubular是开始使用Ruby正则表达式的好工具。
修改强>
the Tin Man提出了一个好点 - Regexps是一个功能强大但却过于复杂的解决方案。虽然我强烈建议你学习如何使用它们,但你应该更喜欢这里简单明了的解决方案。
答案 1 :(得分:1)
只需将vondel_not_allowed
方法中的条件更改为:
def vondel_not_allowed
if username.start_with?('vondel')
errors.add(:username, "cannot start with 'vondel'")
end
end