1
저는 레일즈에서 루비를 처음 접했고 배우기 위해 일부 오픈 소스 코드로 놀아 왔습니다.model_path() 메서드는 어떻게 작동합니까?
model_path(@model)
메서드가 반환하는 내용과 변경 방법을 이해하는 데 몇 가지 문제가 있습니다. 특히 id
및 slug
이있는 모델이 있는데 어떤 이유로 model_path(@model)
은 id
이 아닌 slug
인 경로를 항상 반환합니다.
이유에 대한 아이디어와이 동작을 어떻게 바꿀 수 있습니까?
감사를
:id
을 대체 할 URL을를 생성합니다! 코드가 더 적합합니다. http://domain.com/:id/:slug – slugger
맞춤 경로를 생성하는 쉬운 방법이 있나요? match '/ : id/: slug', : to => "your_controller # show", : as => : custom_model. 그런 다음 뷰 custom_model_path (@ model.id, @ model.slug)에서이를 사용할 수 있습니다. 하지만이 좋은 해결책을 찾지 못한다면, 더 나은 to_param 메소드가 ID와 슬러그를 반환하도록하여 URL이 "/ model/12-blabla"와 같을 것입니다. – egze
12 블레이 블러도 좋아하지만, 컨트롤러가 params [: id]를 사용하는 사용자에게 더 힘들지 않습니까? 모델 인스턴스를 찾으려면 슬러그 또는 ID를 파싱해야합니다. 맞습니까? – slugger