如何在rails中添加示例图像

时间:2015-12-31 05:53:26

标签: ruby-on-rails ruby image paperclip

我有一个简单的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>

3 个答案:

答案 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以便它始终具有图像。它是回形针的选项