2014-06-24 3 views
1

다음과 같이 갤러리에 표시 할 이미지를 반복하려고합니다.DisplayPhotoUploader에 대한 정의되지 않은 메서드 'model_name': 클래스

루프의 결과로 반송파에서 이미지 URL을 검색하는 동안 오류가 발생합니다.

undefined method `model_name' for DisplayPhotoUploader:Class 
+1

어디에서 오류가 발생합니까? – Pavan

+0

이 오류는 Rails가 데이터 객체의'model_name' 속성에 접근하려고 시도 할 때 발생합니다. 문제는 일반적인 Ruby 객체를 전달하지 않는다는 것입니다. 너는 나체'클래스'를 지나가고있다. 이 문제를 해결하려면'@photo = Photo.first'와 같은'Class Object' 인스턴스를 전달해야합니다. –

+0

@Pavan <% = link_to (image_tag (photo.display_photo.url (: medium)), photo. display_photo, : class => 'thumb-zoom lightbox') %> –

답변

0

link_to 헬퍼 즉, anchor element <a href="..">..</a>가 전달되는 인수를 사용하여 링크를 생성한다. 첫 번째 인수는 클릭 가능한 텍스트/이미지를 표시하는 데 사용되며 두 번째 인수는이 <a> element이 연결될 url (즉 href)을 만들고 html_options<a> element과 관련된 모든 html 특성을 취하는 options 집합을 사용합니다. 귀하의 경우에는

, 당신은 정확하게 첫 번째와 세 번째 인수를 전달하지만 두 번째 인수는 photo.display_photo는 그냥 예를 photodisplay_photo라는 이름의 속성을 가져옵니다 어떠한 url를 작성하지 않을 올바르지 않습니다. 이것은이 문제를 해결하려면 오류

undefined method 'model_name' for DisplayPhotoUploader:Class

의 결과로, 당신은 이미지를 클릭시로 라우팅 할 유효한 url를 전달합니다.

명령 프롬프트에서 rake routes을 실행하여 응용 프로그램에 사용할 수있는 경로 목록을 확인하십시오.

<%= link_to(image_tag(photo.display_photo.url(:medium)), photo.display_photo, :class => 'thumb-zoom lightbox') %> 
####              ^^^^^^^^^^^^^^^^^^^  
####              Change this 
+0

@ Kriti Carrierwave는 Model.column을 할 때 자동으로 URL을 제공하지만 여기서는 모델을 반복하고 있기 때문에 여기에 설정되지 않았습니다. 어떤 생각을 어떻게 이미지의 URL을 전달할 수 있습니다. 그것의 가벼운 상자가 이미지의 팝업을 표시하는 플러그인에 의해 픽업되는 이미지에 링크가 있기 때문에 –

+0

이것에 대한 제안? –

관련 문제