如何处理 Carrierwave 文件名:无
How to handle Carrierwave filename: nil
我正在 Rails 5.1.6 应用程序上构建 Ruby 并使用 Carrierwave。我的目标是在上传按钮旁边列出文件名
<div class="form-group">
<label class="btn btn-primary">
Upload a main image file <%= form.file_field :main_image, style: 'display:none;' %>
</label>
<% unless File.basename(@portfolio_item.main_image.path).nil? %>
<%= File.basename(@portfolio_item.main_image.path) %>
<% end %>
</div>
我已经能够使用 File.basename(@portfolio_item.thumb_image.path)
提取并显示文件名,只要已经有一个文件就可以很好地工作。
问题是在 new.html.erb page
上时,我 git 出现 no implicit conversion of nil into String
错误,因为还没有文件(这就是新页面的目的)。
我试过了
unless File.basename(@portfolio_item.main_image.path).nil?
File.basename(@portfolio_item.main_image.path)
end
和一些带有三元语句的变体,但它们都返回相同的 no implicit conversion of nil into String
错误。
我的目标是 return 一个字符串:"select an image",如果没有图像。
我确定有一种简单的方法可以处理这个问题,我只是忽略了它。
谢谢!
可以使用,
if @portfolio_item.main_page?
File.basename(@portfolio_item.main_image.path)
end
在将 image_path 传递给 File.basename(..)
之前,检查它是否存在图像,如果没有则显示字符串 select an image..
,希望这可以解决问题。
<div class="form-group">
<label class="btn btn-primary">
Upload a main image file <%= form.file_field :main_image, style: 'display:none;' %>
</label>
<%= if @portfolio_item.main_image.present?%>
<%= File.basename(@portfolio_item.main_image.path) %>
<%else%>
<p>select an image..</p>
<%end%>
</div>
我正在 Rails 5.1.6 应用程序上构建 Ruby 并使用 Carrierwave。我的目标是在上传按钮旁边列出文件名
<div class="form-group">
<label class="btn btn-primary">
Upload a main image file <%= form.file_field :main_image, style: 'display:none;' %>
</label>
<% unless File.basename(@portfolio_item.main_image.path).nil? %>
<%= File.basename(@portfolio_item.main_image.path) %>
<% end %>
</div>
我已经能够使用 File.basename(@portfolio_item.thumb_image.path)
提取并显示文件名,只要已经有一个文件就可以很好地工作。
问题是在 new.html.erb page
上时,我 git 出现 no implicit conversion of nil into String
错误,因为还没有文件(这就是新页面的目的)。
我试过了
unless File.basename(@portfolio_item.main_image.path).nil?
File.basename(@portfolio_item.main_image.path)
end
和一些带有三元语句的变体,但它们都返回相同的 no implicit conversion of nil into String
错误。
我的目标是 return 一个字符串:"select an image",如果没有图像。
我确定有一种简单的方法可以处理这个问题,我只是忽略了它。
谢谢!
可以使用,
if @portfolio_item.main_page?
File.basename(@portfolio_item.main_image.path)
end
在将 image_path 传递给 File.basename(..)
之前,检查它是否存在图像,如果没有则显示字符串 select an image..
,希望这可以解决问题。
<div class="form-group">
<label class="btn btn-primary">
Upload a main image file <%= form.file_field :main_image, style: 'display:none;' %>
</label>
<%= if @portfolio_item.main_image.present?%>
<%= File.basename(@portfolio_item.main_image.path) %>
<%else%>
<p>select an image..</p>
<%end%>
</div>