Rails 3.1 앱에서 사전에 모르는 다양한 클래스의 오브젝트 (다형성 테이블에서)를 나열하고 싶습니다. 명명 된 경로가있는 리소스의 경우 해당 경로를 link_to
호출로 사용하고 싶습니다. 이러한 경로가 존재하는지 확인하지 않고 본래의 접근법은 (변명 HAML는) : 객체가 예를 들어 명명 된 경로를 (가없는 클래스 Foo
의 인스턴스 인 경우가 아니기 때문에레일스 : 오브젝트에 명명 된 경로가 있는지 확인
%ul
- @objects.each do |object|
%li= link_to object, url_for(object)
이것은 undefined method 'foo_path'
오류가 발생합니다 리소스로 정의 됨). 객체 나 클래스에 대한 명명 된 경로의 존재를 확인하는 간단한 방법 (예 : 간단한 메서드 호출)이 있습니까?
편집 : 당신은 모델 객체를하지 않으려면 단지에 이름 경로없이 LINK_TO 호출에 구조를 추가 할 수
%ul
- @objects.each do |object|
%li= link_to_if object.has_route?, object, url_for(object)
왜 그 개체에 대한 명명 된 경로를 만들지 설명 할 수 있습니까? 공통된 기본 유형을 공유하거나 게시 한 코드에 무엇이 잘못 되었기 때문에 모든 객체에 대한 일반 URL을 출력하는 url_for입니까? – Tigraine
그들은 반드시 공통 기본 유형을 공유하지는 않습니다. 존재하지 않는다면 명명 된 경로를 만들고 싶지 않습니다. 단지 그것이 있는지 확인하고 싶습니다. – Thilo
네,하지만 내 경험으로 url_for는 경로가있는 경우 특정 모델 객체에 대한 올바른 URL을 간단히 생성합니다. 또는 필터링 할 경로가없는 모델 개체가 있습니까? – Tigraine