2014-09-30 4 views
0

일부 고객 프로필을 페이지로 표시하고 해당 프로필 페이지 URL이 해당 이름이되도록하겠습니다. 예를 들어동적 URL 생성 및 경로

, 누군가가 존 도우라는 프로필을 것 :

mydomain.com/profiles/johndoe 

거기에 한 신원 미상 더있다, 그래서 수 있도록하려는 경우 :

mydomain.com/profiles/johndoe1 

mydomain.com/profiles/johndoe2 

나 ' 여기에 동적 경로에 대해 읽은 것은

Rails Routing from the Outside In

하지만 난 방법을 알아낼 수 없었다 그것을하기 위해.

감사합니다.

답변

3

URL에 와일드 카드를 사용하면 작업을 완료 할 수 있습니다. config/routes.rb 넣어에서 :

get '/profiles/:username', to: 'controller_name#action_name' 

지금 params[:username] 귀하의 첫 번째 예에서 "johndoe1"와 "johndoe2"두 번째 URL의 예와 같다. 컨트롤러에 다음과 같이 입력 할 수 있습니다.

def show 
    @user = User.find_by_username(params[:username]) 
end 

그러면 사용자 이름을 기준으로 데이터베이스 레코드가 @user로 채워집니다.

참고 : 물론, 저는 설정에 대해 꽤 큰 가정을하고 있습니다. 따라서 개인적인 상황에 따라 여기저기서 물건을 두 개씩 가져야 할 것이지만 일반적 아이디어가 있어야합니다.

+0

고맙습니다. 그것은 효과가있다! 사실, 나는이 필드 사용자 이름을 가지고 있지 않았다. 단지 first_name과 last_name이지만, 나는 제안한 것처럼 새로운 필드 사용자 이름을 만들었다. –