我正在尝试将名称保存到数据库,并且单个单词(firstname)工作正常,但是当用户同时输入firstname和lastname时,我希望Rails将其作为firstname-lastname而不是firstname lastname(之间的空格)保存到数据库中.
我知道我也许应该使用之前的创建过滤器,但我不确定这需要怎么样.我希望验证工作,即没有两个人应该能够使用相同的名称.
我正在使用Rails 3.
IAm*_*NaN 46
您可以parameterize在字符串上使用ActiveSupport的inflector方法.
name = 'john smith' # => john smith
name.parameterize # => john-smith
Run Code Online (Sandbox Code Playgroud)
此外,参数化可以选择用于分词,因此您可以使用下划线替换短划线,如下所示:
name.parameterize("_") # => john_smith
Run Code Online (Sandbox Code Playgroud)
使用参数化的一个优点是它将字符规范化为拉丁语,所以......
name = "jöhanne såltveç"
name.parameterize # => johanne-saltvec
Run Code Online (Sandbox Code Playgroud)
小智 4
为什么不在数据库中只包含first_name和last_name列,并创建自己的验证规则以确保组合是唯一的(http://guides.rubyonrails.org/active_record_validations_callbacks.html#creating-custom-validation-methods )。您还应该在数据库中的这两列上创建唯一索引。
| 归档时间: |
|
| 查看次数: |
10156 次 |
| 最近记录: |