FriendlyID을 내 레일 앱에 설치했습니다. 나는이 문제에 대한 지침을 https://github.com/norman/friendly_id/issues/700 따라 갔고 첫 번째 옵션에 따라 이와 같은 링크를 변경했습니다.FriendlyID - 관리자 네임 스페이스의 기본 ID 사용
# before: admin_post_path(@post)
link_to admin_post_path(@post.id)
지금까지 너무 좋아, 그러나 나는 다음과 같은 오류를 얻을 _form를 제출하려고 할 때 나는 또한 제거했기 때문에이 발생 된 것으로 나타났습니다 디버깅 후
Couldn't find Post with 'id'=hello-world
Post.find에서. 친화적 인 방법, 그래서 :
그래서 내가 다시 넣어 모든 일하고 있었다. 이 여분의 쿼리를 set_post
에 @post = Post.find(params[:id])
을 유지하고 제거하는 방법이 있나요 : 당신이
Post Load (0.3ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`slug` = '1' LIMIT 1
Post Load (0.2ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 1 LIMIT 1
알고하지만이 내 질문의 여기 자, 슬러그를 얻기 위해 사용되는 하나 개의 추가 쿼리를 생성? 프론트 엔드에서 친숙한 ID와 슬러그를 사용하여 링크가 작동해야하므로 관리자 네임 스페이스에만 적용되기를 바랍니다.
조회 자체가 아닌 생성 된 링크에 문제가 있습니까? 내 말은, 슬러그는 실제 이드 대신 링크에서 사용되는 것입니까? op가 얻는 오류는''id '= hello-world'로 포스트를 찾을 수 없습니다. – Iceman
@Iceman : 흠, 내가 아는 범위가 아닙니다. 그렇지 않으면 로그에서 '슬러그 ='1 '이 나오는 것을 보지 못할 것입니다. 그러나 슬러그 값 대신에 ... – gwcodes
아니, 네 말이 맞아, 그냥 생각해. friendly_id와 비슷한 문제가있었습니다. – Iceman