2014-11-04 3 views
1

사용자가 사용자 이름을 설정하고 해당 프로필 URL이 Twitter와 비슷한 사용자 이름과 일치하는 응용 프로그램이 있습니다. 문제는 대소 문자를 구분합니다. 데이터베이스에 저장하기 전에 사용자 이름을 숨겼지만 여전히 문제가 발생합니다. 여기에 당신이 username라는 컬럼에 저장한다고 가정 루트사용자 이름 대소 문자를 구분하지 않는 URL

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

답변

4

에 URL의 일치 해요 방법입니다.

사용자가 컨트롤러 show 조치. params에서 사용자 이름 열과 사용자 이름을 모두 삭제해야합니다.

그래서 당신은 변경해야

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

될하려면 깨끗한 방법에 대한

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

당신이 혼동을 피하기 위해 params[:username]을 할 params[:id]을 변경할 수 있습니다.

귀하의 경로는 다음과 같습니다

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

사용자가 params[:username]

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

번호와 사용자 이름이 더 이상 작동하지 않는다는 것이다 발생하는 다른 문제를 사용하는 것 찾기. –

+1

이것은 관련이 없기 때문에. 새로운 질문에 오류를 설명해주세요. 나는 그것을 조사 할 것입니다. – mohameddiaa27

관련 문제