/:user_id
user_id
은 정수가 아니라 NM-001
과 같은 다른 문자를 사용하는 사용자 정의 ID 인 경우이 경로로 전달할 수 있는지 궁금합니다. 그렇다면 내 컨트롤러에는 @user = User.find(params[:user_id])
이 있습니다. 그러면보기가 <%= @user.name %>
RoR v3 라우팅 질문이 있으십니까?
답변
예, 이러한 경로를 사용할 수 있습니다. 당신의 :user_id
마침표를 포함 할 경우, 당신은 형식 지정자로 :user_id
의 .whatever
부분을 해석하는 시도에서 레일을 유지하기 위해 경로 옵션에서
:constraints => { :user_id => /.*/ }
을 포함 할 수 있습니다.
그러면 컨트롤러에 params[:user_id]
이 생기고 원하는대로 설정할 수 있습니다. 당신은 아마 코멘트에 mischa는 말을하고 싶은 것 : 당신이 정말로 경로로 /:user_id
을 사용하려는 경우
@user = User.find_by_user_id(params[:user_id])
또한, 당신이 당신의 사용자 ID 아무도과 일치하지 있는지 확인하고 싶을 것이다 당신의 현재 또는 미래의 최상위 경로.
내 컨트롤러'@user = User.find (params [: user_id])'에서 이것을 시도하면 내보기'%% @ user.name %>'내 경로 ID가없는 사용자를 찾을 수 없습니다. '오류를 반환합니다. – camelCaseD
@ Leozar100 : 컨트롤러가'find_by_user_id'를 다음과 같이 사용하고 있어야합니다 : '사용자 : 일치'/ : user_id ', : mischa는 어제의 논평에서 언급했다. –
오, 이제 find_by_user_id 메소드는 argams로'params [: user_id]'를 사용합니다. 고마워 – camelCaseD
- 1. 심포니 라우팅 질문이 있으십니까?
- 2. 질문이 있으십니까?
- 3. CGPathContainsPoint 질문이 있으십니까?
- 4. 디자인 관련 질문이 있으십니까?
- 5. XAML 버튼 질문이 있으십니까?
- 6. Fileupload 질문이 있으십니까?
- 7. PHP doc 질문이 있으십니까?
- 8. tomcat 구성 질문이 있으십니까?
- 9. UITableView 간단한 질문이 있으십니까?
- 10. PHP/MySQL 질문이 있으십니까?
- 11. PHP onclick 질문이 있으십니까?
- 12. APC 실행 컨텍스트 질문이 있으십니까?
- 13. PHP와 정규 표현식에 질문이 있으십니까?
- 14. Microsoft ASM 인터뷰 질문이 있으십니까?
- 15. Android AudioRecord에 대한 질문이 있으십니까?
- 16. 간단한 PHP 경고 질문이 있으십니까?
- 17. flex preloaders에 대한 질문이 있으십니까?
- 18. PHP의 소켓에 대한 질문이 있으십니까?
- 19. dateTimepicker 및 monthlycalender에 질문이 있으십니까?
- 20. DDD 화면 캐스트 질문이 있으십니까?
- 21. MySql 및 PHP 질문이 있으십니까?
- 22. PHP/MySQL 데이터베이스 질문이 있으십니까?
- 23. RoR 라우팅 문제
- 24. Android ==> 서비스 관련 질문이 있으십니까?
- 25. PHP를 사용하여 이미지 크기 조정 질문이 있으십니까?
- 26. iOS 부분 컬 전환 질문이 있으십니까?
- 27. ajax 라이브러리에 MCTS70-515 질문이 있으십니까?
- 28. oracle sql developer에 대한 질문이 있으십니까?
- 29. 클로저 (str 적용) 질문이 있으십니까? 폐쇄와
- 30. CUDA 프로그래밍에 대한 인터뷰 질문이 있으십니까?
예 가능합니다. 이'user_id' 문자열이 테이블의 기본 키인지 아닌지 여부 기본 키가 아닌 경우'find' 대신'find_by_user_id'를 사용해야합니다. 기본 키인 경우'User' 모델에게 기본 키가'id' 대신에'user_id'라고 말해야합니다. – Mischa
@mischa'user_id'이 (가) 내 기본 키가 아닙니다. 그래서 지금 당신이 말한 것을 시도해 보겠습니다. – camelCaseD