2014-06-24 166 views
1

我想通過圖像循環顯示在畫廊中,如下所示。DisplayPhotoUploader的未定義方法`model_name':類

<%= @venue.venue_photos.each do |photo| %> 
      <div class="col-lg-3 col-md-6 col-sm-6"> 
      <div class="widget"> 
       <div class="thumbnail"> 
       <%= link_to(image_tag(photo.display_photo.url(:medium)), photo.display_photo, :class => 'thumb-zoom lightbox') %> 
       </div> 
      </div> 
      </div> 
      <% end %> 

我在嘗試從carrierwave中檢索圖像url時出現錯誤,這是由於循環造成的。

undefined method `model_name' for DisplayPhotoUploader:Class 
+1

在哪一行發生錯誤? – Pavan

+0

此錯誤將由Rails嘗試訪問數據對象的'model_name'屬性引起。問題是你沒有傳遞一個典型的Ruby對象;你正在傳遞一個裸體的'Class'。爲了解決這個問題,你需要傳遞一個'Class Object'的實例,比如'@photo = Photo.first' –

+0

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

回答

0

link_to輔助創建即,使用傳遞給它的參數的anchor element <a href="..">..</a>的鏈接。第一個參數用於顯示可點擊的文本/圖像,第二個參數採用一組創建<a> element將鏈接到的url(即href)的集合options,並且最後一個html_options採用與<a> element相關的任何html屬性。

在你的情況,你正確地傳遞第一個和第三個參數,但第二個參數是不正確photo.display_photo是不會產生任何url因爲它只是獲取命名實例photodisplay_photo屬性。這是導致錯誤

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自動給你的URL,當你做Model.column但在這裏,因爲我循環模型尚未設置。任何想法如何我可以通過圖像的網址。因爲它是一個燈箱,鏈接是通過插件獲取的圖像來顯示圖像的彈出窗口 –

+0

對此有何建議? –

相關問題