未定义的方法`model_name'对于DisplayPhotoUploader:Class

时间:2014-06-24 07:34:41

标签: ruby-on-rails ruby-on-rails-4 carrierwave

我正在尝试循环显示图像,如下图所示。

<%= @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的图片网址时收到错误。

undefined method `model_name' for DisplayPhotoUploader:Class

1 个答案:

答案 0 :(得分:0)

link_to helper使用传递给它的参数创建一个链接,即anchor element <a href="..">..</a>。第一个参数用于显示可点击的文本/图像,第二个参数使用一组options创建url(即href),<a> element将链接到该html_options最后一个<a> element采用与photo.display_photo相关的任何html属性。

在您的情况下,您正确传递了第一个和第三个参数但是第二个参数不正确url不会创建任何display_photo,因为它只会获取名为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 以检查应用程序的可用路由列表。

{{1}}