2014-11-12 7 views
0

나는 내 자원 중 하나에 대한 경로가 있습니다자원 경로 : ID

resources :categories 

을 나는 그래서이 사용하는 대신 idkey 속성 카테고리에 링크를 생성해야합니다

blah이고이

/categories/blah.1 

생성

category_path(category, :id=>category.key) 

원하는 키이고 1은 바람직하지 않습니다. 어떻게 그곳에 왜 이드와 함께 그 점을 지칠 수 있습니까?

답변

1

한 가지 방법은 귀하의 의견에 category_path(category, :id=>category.key) 모든 곳이 필요하지 않는, 영구적으로 해결하는 것은 당신이 당신의 Category 클래스 (응용 프로그램/모델/category.rb)에서 인스턴스 메서드를 만들 수 있다는 것입니다 :

def to_param 
    key.try(:parameterize) 
end 

는 기본적 to_param는 URL에 대한 모델 개체를 생성시 레일 불리는 방법이다. 우린 방금 여기에서 재정의했습니다.

<%= link_to category.name, category %> 

을 그리고 기본적으로 key을 사용합니다 : 지금, 당신은 category_path(...)를 작성하지 않아도, 당신은 할 수 있습니다. category.name을 링크에 표시 할 적절한 값으로 변경하면됩니다.

참고 : 속성이 항상 존재하고 고유 한 것으로 확인되어 검색 할 때 컨트롤러에 유효하지 않은/카테고리가없는 것으로 확인되지 않도록하십시오 (Category 클래스에 있음).

+0

감사합니다.이 기능은 완벽하게 작동합니다. – SET