[英]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.