Ruby on rails Carrierwave:Can';t将图像解析为URL:undefined method`to#u model';
我收到这个错误:Ruby on rails Carrierwave:Can';t将图像解析为URL:undefined method`to#u model';,ruby-on-rails,ruby,carrierwave,Ruby On Rails,Ruby,Carrierwave,我收到这个错误: Can't resolve image into URL: undefined method `to_model' for #<PortfolioUploader:0x007fd1538a2a60> Did you mean? to_xml 你知道我遗漏了什么吗?我想应该是吧 <%= image_tag portfolio_item.thumb_image.url unless portfolio_item.thumb_image.nil? %>
Can't resolve image into URL: undefined method `to_model' for #<PortfolioUploader:0x007fd1538a2a60>
Did you mean? to_xml
你知道我遗漏了什么吗?我想应该是吧
<%= image_tag portfolio_item.thumb_image.url unless portfolio_item.thumb_image.nil? %>
我通常是这样做的
<%= image_tag(portfolio_item.thumb_image_url) unless portfolio_item.thumb_image.nil? %>
即使在没有上传图像的情况下,这项功能也应该非常适合您:
<%= image_tag(portfolio_item.thumb_image_url) if portfolio_item.thumb_image_url %>
注意:if语句用于避免在没有图像或已上载图像时出错
就这些
我希望这对您有所帮助如果您刚刚升级到Rails 5.2,
image\u标签的行为在Rails 5.1和5.2之间发生了变化
在Rails 5.1中,您可以传递uploader对象,如所问的问题:
# Rails 5.1
image_tag(portfolio_item.thumb_image)
但是在Rails 5.2中,image\u标签
现在需要一个url:
# Rails 5.2
image_tag(portfolio_item.thumb_image_url)
哪一行代码导致错误?
<%= image_tag(portfolio_item.thumb_image_url) if portfolio_item.thumb_image_url %>
# Rails 5.1
image_tag(portfolio_item.thumb_image)
# Rails 5.2
image_tag(portfolio_item.thumb_image_url)