현재 내 URL은 www.website.com/entries/1
으로 표시되어 있습니다. www.website.com/title-of-entry
으로 표시하고 싶습니다. routes
으로 장난 꾸러기 였고 URL에 entry
제목을 표시 할 수 있었지만 Rails는 ID를 제공하지 않고 entry
을 찾을 수 없습니다. 매개 변수와 함께 ID를 보내면 URL은 www.website.com/title-of-entry?=1
으로 표시됩니다. URL에 매개 변수로 표시하지 않고 ID를 전달할 수 있습니까? 감사!URL을 게시물의 제목으로 지정하십시오.
0
A
답변
1
1
일반적으로이 부분을 데이터베이스 title-of-entry
에 저장하려고합니다 (slug
또는 무언가를 호출하십시오). 이제 생성 된 경로는 다음과 같이
class Entry < ActiveRecord::Base
before_validation :set_slug
def set_slug
self.slug = self.title.parameterize
end
def to_param
self.slug
end
end
:
# instad of this
@entry = Entry.find(params[:id]
# use this
@entry = Entry.find_by_slug(params[:id])
: /entries/title-of-entry
당신이 컨트롤러를 변경해야 해당 항목을 찾으려면 귀하의 모델은 다음과 같이 보일 수 있습니다 업데이트
몇 가지주의해야 할 점은
입니다.당신은 그렇지
Entry.find_by_slug(params[:id])
이 항상 발생이 슬러그와 첫 번째 항목을 반환합니다slug
이 고유한지 확인해야합니다.예외는 발생하지 않지만 대신
nil
을 반환합니다.Entry.find_by_slug!(params[:id])
을 사용해보십시오.경로를
/title-of-entry
처럼 보이게하려면 나중에 문제가 발생할 것입니다. 항목 슬러그가 다른 컨트롤러의 이름과 동일하게 보이면 라우터에서 예기치 않은 결과가 발생할 수 있습니다.
관련 문제
- 1. 부분 게시물의 URL을 변경하십시오.
- 2. android app에 URL을 지정하십시오.
- 3. WordPress 게시물의 URL을 변경 하시겠습니까?
- 4. 제목으로
- 5. WordPress 게시물의 동적 사이트 URL을 사용 하시겠습니까?
- 6. curl 명령에서 변수에 저장된 URL을 지정하십시오.
- 7. 이 플러그인을 공유 할 URL을 지정하십시오.
- 8. 더 제목으로
- 9. 제목으로 미디어를 얻으십시오 - wordpress
- 10. 게시물의 첫 번째 이미지 URL을 가져 오는 중입니까?
- 11. 데이터베이스의 이중 링크가 제목으로 생성되었습니다.
- 12. Wordpress - 특정 카테고리가있는 맞춤 게시물의 제목으로 메뉴를 채우는 데 도움이 필요합니다.
- 13. 세련된 스타일의 @ -moz-document에 영향을 미치지 않도록 URL을 지정하십시오.
- 14. 노키아 (심비안)에서 google maps 앱을 가리키는 URL을 지정하십시오.
- 15. LinkedIn에 URL을 붙여 넣을 때 입력되는 정보를 지정하십시오.
- 16. Google지도입니다. 제목으로 파서를 조정하십시오.
- 17. 제목으로 POST 메서드
- 18. CMS를 지정하십시오
- 19. Wordpress에서 제목으로 검색하는 방법은 무엇입니까?
- 20. iPod 라이브러리에서 노래 제목으로 재생하기
- 21. 목록 모든 사용자의 객체가 제목으로
- 22. 제목으로 UITableView 섹션 제목 배경색
- 23. NSPopupButton의 크기를 선택한 제목으로 조정하십시오.
- 24. 제목으로 현재 날짜를 설정하는 방법
- 25. 제목으로 요소 가져 오기 jQuery
- 26. 자바 스크립트 : 앵커를 제목으로 바꾸기
- 27. 게시물의 HTML 태그 차단
- 28. 게시물의 Wordpress Div 태그
- 29. 모든 게시물의 제목을 받으십시오.
- 30. 블로그 게시물의 순서 전환
@Wukerplank에 대한 자세한 제안을 해주셔서 감사 드리며, 지난 밤에 나는 어지럽 혀 작업하기가 힘들었습니다. 나는 당신이 제안한대로 일할 수있는 시간을 보내고 해킹 할 수는 있었지만 확신 할 수는 있었지만 쉽게 할 수는 없었습니다. 슬러그/타이틀 문제를 다루면서, 나는 보석과 함께 갈 것입니다. 당신은 확실히 이것에 대한 upvote 자격이있어, 다시 한 번 감사드립니다! –