두 번 검사는 현재, 나는레일 3 루트 일치
match '/:username' => 'profiles#show', :as => :public_profile
가 지금은이 형식을 사용하고, 다른 경로에 대한 또 다른 경기를 만들기 위해 다른 매개 변수를 추가 할 내 routes.rb에 있습니다. 설명하는 방법을 모르지만 예제를 들어 보겠습니다. 상술과 일치하는 가정 :
http://example.com/foo_username
을이 foo_username의 프로필에 연결된다. 지금은이 같은 URL을 갖고 싶어 :
이 링크를 클릭하면 해당 ID (슬러그) 등의 5 나의 이야기,이 이야기를 이야기 번호 쇼 액션에 가야는 제공된 사용자 이름에 의해 소유
http://example.com/foo_username/5-my-story
경로에. 경로에서 어떻게 구성합니까? 나는이 일을 시도 :
match '/:username/:id' => 'stories#show', :as => public_story
그것은 작동하지만 사용자 이름의 매개 변수를 변경할 때, 여전히 이야기로 이동합니다. 그것은 사용자 이름이 이야기를 소유하지 않기 때문에 찾을 수없는 경로를 반환해야합니다.
어떻게 구현하는 것이 가장 좋습니까? 그런 다음 @story 있는지 확인해야 당신이
@user = User.find_by_username(params[:username])
@story = @user.stories.find(params[:id])
처럼 어쩌면 사용자의 이야기를이를 제한해야
@story = Story.find(params[:id])
: 컨트롤러에서