代码之家  ›  专栏  ›  技术社区  ›  irl_irl

如何处理自定义url中的大写和小写字符?

  •  1
  • irl_irl  · 技术社区  · 15 年前

    我想让用户使用他们注册的用户名链接到他们的个人资料。

    我准确地存储他们的用户名。

    我将我的路由设置为匹配/:name,然后使用find_by_name获取它。我遇到的问题是,当您输入example.com/username时,它不起作用。(注意大小写的区别)

    所以我的问题是如何忽略URL中的大小写?

    3 回复  |  直到 15 年前
        1
  •  3
  •   markquezada    15 年前

    你可以储存 username display_name 这是他们给你的格式。然后,将任何输入降到最低,并将其与 用户名 只使用 显示名称 因为,好吧,展示:)

    如果你愿意,你甚至可以重定向到 /DisPlAyName /username 你查了记录之后。

        2
  •  3
  •   Samuel    15 年前

    最简单的方法是在进行比较时将数据库和rails中的用户名转换为小写(或大写)。

    User.where('lower(username) = ?', params[:name].downcase).first
    

    或者如果您仍在使用rails 2:

    User.find(:first, :conditions => ['lower(username) = ?', params[:name].downcase])
    
        3
  •  0
  •   irl_irl    15 年前

    一种方法是存储用户名的小写版本。当他们输入时

    example.com/UsErNaMe example.com/Username

    将其降格并与数据库中的小写版本匹配。

    ---或者---

    只要让用户在任何地方都有一个小写的用户名。(当它被制造出来的时候放下它)

    ---或者---

    有一个固定类型的用户名。所以总是把第一个字母大写。每次显示第一个字母时,将其存储为小写和大写。