가능합니까?URL 정리 URL to_param에서 슬래시 '/'사용 (3)
def to_param
"#{id}%2F#{slug}"
end
크롬과 사파리에서 작동하지만 Firefox의 경우 주소 표시 줄에 "% 2F"이 표시됩니다. 더 깨끗한 방법이 있습니까?
가능합니까?URL 정리 URL to_param에서 슬래시 '/'사용 (3)
def to_param
"#{id}%2F#{slug}"
end
크롬과 사파리에서 작동하지만 Firefox의 경우 주소 표시 줄에 "% 2F"이 표시됩니다. 더 깨끗한 방법이 있습니까?
에 대한이 문서의 섹션은 "리디렉션 방법"도움이되지만 I 수 그것에 조금을 만들고 싶다. 당신이 당신의 PARAMS에 슬러그 변수를 처리해야하고 싶지 않은 경우
, 당신은 정말 그렇게 같은 경로를 모델
def to_param "#{id}/#{title}" end
에서 그 방법 to_param을 정의하고 설정해야합니다
resources :posts, :id => /[0-9]+\/.+/
그 방법은 링크 정의는 아주 정상처럼 보이는 : 아주 간단한
link_to post.title, post_url(post)
을 : http://www.miguelsanmiguel.com/2011/03/17/slug-that-slash
이 아닌 "id/slug"형식을 사용하는 레일에 깨끗한 URL을 구현하려고 시도하면 레일 3에 이러한 중단이 발생할 수 있습니까? 정확한 코드로 실행하는 데 문제가 있습니다. – brittohalloran
BTW -'to_param' 메서드에서 "-"또는 "_"를 사용하면 멋지지만, "/"를 사용하면 나옵니다 (당연히 정규식을 편집해야합니다). – brittohalloran
먼저 : 위 코드가 실행됩니다. Rails3에서. 둘째 : 귀하의 슬러그 (게시물 제목)에 슬래시가있는 것은 좋은 생각이 아닙니다. URL에서 더 깊은 레벨을 나타내며 중첩 된 리소스와 호환되지 않기 때문에 어떻게 든 대체해야합니다. 사실, 우리는 [예약 된 URL 문자] (http://www.blooberry.com/indexdot/html/topics/urlencoding.htm)로 처리해야합니다. 나는 다음과 같은 것을 제안한다 : def to_param; "# {id}/# {name_without_reserved_url_characters}"; 끝 '. 큰 포인트! – miguelsan
Friendly ID을 보시면 ID가 완전히 사라지고 슬러그를 사용합니다. Rails 3와 호환됩니다.
routes.rb (당신이 필요로 당신이 원하는 대체)에서def to_param
"#{id}/#{slug}"
end
match "/expenses/:id/:slug" => "expenses#show", :as => :expense
귀하의 LINK_TO가 같아야합니다 : 난 그냥 지금이 필요하지 않습니다이 시도
확인 이 지금
= link_to "something", expense_url(:id => expense.id, :slug => expense.slug)
희망이 조금 도움이
어쩌면이 같은 당신이
match "/foo/:id", :to => redirect("/bar/%{id}s")
체크 아웃이 실제로 이전 게시물입니다 rails3 및 경로
http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/
정확히 뭐하고 있니? –
"id-slug" –