繁体   English   中英

不区分大小写的用户名URL

[英]Username URLs that aren't case sensitive

我有一个应用程序,用户在其中设置用户名,其个人资料URL与类似于Twitter的用户名相匹配。 我遇到的问题是区分大小写。 在将用户名保存到数据库之前,我不使用大小写的用户名,但是仍然遇到问题。 这是我在路线中匹配网址的方式

  match "/:id" => "users#show", via: :get

假设您将其存储在名为username的列中。

在您的用户控制器中show操作。 您需要小写用户名列和参数中的用户名。

因此,您需要更改:

@user = User.find_by_username(params[:id])

成为:

@user = User.find(:first, :conditions => ["lower(username) = ?", params[:id].downcase])

对于更清洁的方法,您可以将params[:id]更改为params[:username]以避免混淆。

您的路线将是:

match "/:username" => "users#show", via: :get

查找用户将使用params[:username]

@user = User.find(:first, :conditions => ["lower(username) = ?", params[:username].downcase])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM