簡體   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