我有一个简单的rails网站,人们可以发布带有图像的货件,为此我使用paperclip
宝石但我的问题是如果用户添加货物而没有上传图像,它会被发布但没有图像但我想要的是添加一个样本图像,这样如果有人添加了没有图像的货件,将会自动生成样本图像
我的代码:
<div class="container-fluid">
<div id="post_show">
<h1>
<strong><font style="text-transform: capitalize;"><%= @shipment.name %></strong></font>
</h1>
<p></p>
<p class="username">
Added by
<strong><font style="text-transform: capitalize;"><%= @shipment.user.full_name %></strong></font>
about
<%= time_ago_in_words(@shipment.created_at) %>
</p>
<div class="clearfix">
<div class="post_image_description">
<%= image_tag @shipment.image.url(:medium) %>
<div class="description">
<%= simple_format(@shipment.description) %>
</div>
</div>
form.html.erb
<div class="form-row">
<div class="field">
<%= f.label :image, label: "Add An Image Of The Shipment" %><br>
<%= f.file_field :image %>
</div>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
</div>
答案 0 :(得分:2)
结帐https://github.com/thoughtbot/paperclip#user-content-models
如果图片未上传,则会选择default_url
,然后作为默认图片/images/:style/missing.png
,您还可以在此处指定自己的特定图片路径以显示为默认图片。
以下是来自回形针文档( Rails 4 )的示例:
class User < ActiveRecord::Base
has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/
end
或强>
您可以使用以下条件进行显示:
<%= image_tag @shipment.image.url.present? ? @shipment.image.url(:medium) : "your_default_image.png" %>
答案 1 :(得分:0)
您可以使用选项default_url
模型:
has_attached_file :image, :default_url => "/images/normal/missing.png"
答案 2 :(得分:0)
使用default_url以便它始终具有图像。它是回形针的选项