未定义的方法 'to_model' 将缩略图链接到原始图像时
undefined method 'to_model' when linking thumbnail to original image
我正在创建一个相册,我打算用 Masonry 和 ImgZoom 展示它,以便访问者在单击它时可以看到更大的图像。
根据 ImgZoom,要使缩放正常工作,您需要执行以下操作:
<a href="path/to/real/image.png">
<img src="path/to/image's/thumbnail.png class="thumbnail" />
</a>
所以我生成了一个上传器,里面有以下内容:
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
'portfolio/photos'
end
version :thumb do
process :resize_to_fit => [220, nil]
end
end
一切正常,我可以毫无问题地调用这两个版本,但是当我尝试按照 ImgZoom 的说明执行以下操作时:
<%= @portfolio.photos.each do |p| %>
#This is a nested form inside the portfolio form, so I need to do this to get my images
<%= link_to image_tag p.image.thumb.url, p.image %>
或:
<%= link_to p.image do %>
<%= image_tag p.image.thumb.url, :class => 'thumbnail' %>
<% end %>
我收到以下错误:undefined method 'to_model' for #<ImageUploader:0x0000000c35f4d8>
我在 stack overflow 上发现了一个类似的主题,但提问者不清楚,并被邀请在论坛上提问,但我找不到。
我可以单独到达 'p.image' 和 'p.image.thumb.url',但我不能从一个到另一个 link,这完全可以用简单的 html.
我做错了什么?
提前致谢
首先,要在 link 中创建 class "thumbnail",您需要正确声明它。我编辑了 link:
<%= link_to p.image.url do %>
<%= image_tag p.image.url, class: "thumbnail" %>
<% end %>
其次,您需要检查是否为查看图像创建了合适的路径。这可以通过 link 正确地访问静态资产(因为您的图像不在 "public" 下)或通过模板视图来完成。
如果文件存储在 "public" 下,您的 linking 方式应该没问题。
查看 image_path 在文档中的工作原理:image_path (and more)
我正在创建一个相册,我打算用 Masonry 和 ImgZoom 展示它,以便访问者在单击它时可以看到更大的图像。
根据 ImgZoom,要使缩放正常工作,您需要执行以下操作:
<a href="path/to/real/image.png">
<img src="path/to/image's/thumbnail.png class="thumbnail" />
</a>
所以我生成了一个上传器,里面有以下内容:
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
'portfolio/photos'
end
version :thumb do
process :resize_to_fit => [220, nil]
end
end
一切正常,我可以毫无问题地调用这两个版本,但是当我尝试按照 ImgZoom 的说明执行以下操作时:
<%= @portfolio.photos.each do |p| %>
#This is a nested form inside the portfolio form, so I need to do this to get my images
<%= link_to image_tag p.image.thumb.url, p.image %>
或:
<%= link_to p.image do %>
<%= image_tag p.image.thumb.url, :class => 'thumbnail' %>
<% end %>
我收到以下错误:undefined method 'to_model' for #<ImageUploader:0x0000000c35f4d8>
我在 stack overflow 上发现了一个类似的主题,但提问者不清楚,并被邀请在论坛上提问,但我找不到。 我可以单独到达 'p.image' 和 'p.image.thumb.url',但我不能从一个到另一个 link,这完全可以用简单的 html.
我做错了什么?
提前致谢
首先,要在 link 中创建 class "thumbnail",您需要正确声明它。我编辑了 link:
<%= link_to p.image.url do %>
<%= image_tag p.image.url, class: "thumbnail" %>
<% end %>
其次,您需要检查是否为查看图像创建了合适的路径。这可以通过 link 正确地访问静态资产(因为您的图像不在 "public" 下)或通过模板视图来完成。
如果文件存储在 "public" 下,您的 linking 方式应该没问题。
查看 image_path 在文档中的工作原理:image_path (and more)