2009-10-01 5 views
3

이의 내가이 있다고 가정 해 봅시다 "내 빅 링크"를 클릭하면 올바른 페이지로 이동하지만 주소 표시 줄의 URL에 원하는 퍼 뮤 링크가 표시되지 않습니다. 대신 표준을 보여줍니다.하드 코딩 경로

wwww.mysite.com/pages/4 

id는 page_path에 하드 코딩 되었기 때문에입니까? 내가 직접 HTML 등을 사용하는 경우 그것은 또한 사람이 같은 동작을 확인하고이 의도 여부를 알려 주시기 수 있다면

<a href="/pages/4">My Big Link</a> 

내가 그것을 감사하겠습니다 .. 작동하지 않습니다. 나는 하드 코딩 할 수있는 능력이 필요합니다 아이디의 정확한 페이지를 지정 ...

답변

-1

UPDATE ----------------------> 모든 답변을

감사합니다. 이것은 일종의 상황이었습니다. 내 솔루션은 단순히 HTML을 이동하는 것이었다 : 생산

<a href="/pages/4-great-title-here">My Big Link</a> 

원하는 : 나는 페이지 오브젝트를 통해 루프를 원하는이 하나 개의 링크에 대한 데이터베이스에 대한 호출을 낭비하지 않았다

wwww.mysite.com/pages/4-great-title-here 

. 그래도 모든 답변에 감사드립니다!

1

그것은 당신이 ID를 지정되기 때문입니다 :

page_path(:id => "#{id}-#{title.parameterize}") 
:

page_path(:id => 4) 

당신은이 방법에서 원하는 경로를 지정할 수를

어디 to_param 메서드를 정의 했습니까? 모델에서?

+0

안녕하세요. Toby, 예, page.rb에 있습니다. id : id를 지정하지 않고 id :를 지정하고 page.rb에서 to_param 메서드를 호출하는 이유는 아직 명확하지 않습니다. – drpepper

+0

사실 나는 왜 볼 수 있습니다 - 나는 더 많은 해결 방법을 찾고 있다고 생각합니다 :) – drpepper

5

그냥 page_path (page)를 사용하십시오. 경로 도우미는 데이터베이스 자체에 액세스하지 않는다고 생각합니다. 그러나 객체에 제공되는 객체에 to_param 메소드가 있으면이 메소드가 식별자를 생성하는 데 사용됩니다. 내 질문에

<%= link_to "My Big Link", page_path(page) %> 
관련 문제