Ruby-On-Rails如何显示用户上传的图像

时间:2016-12-14 11:39:53

标签: ruby-on-rails image upload

我正在使用Carrierwave,以便用户可以上传图片。我正在建立一个博客网站。我没有错误,但图像没有出现。我希望图像出现在后视图中。这是我的代码:

Post.rb

mount_uploader :image, ImageUploader

帖子_form.html.erb

  <div>
    <%= form_for @post do |f|%>
    <%= f.label :image %>
    <%= f.file_field :image %>
  </div>

image_uploader.rb

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end

帖子show.html.erb

<strong>Image:</strong>
    <%= image_tag @post.image_url%>
</p>

当我运行我的应用程序并查看帖子时,它只是说Image:下面没有图像。

更新:

我安装了ImageMagick / GraphicsMagick,当我去保存帖子时说:

1 error prohibited this post from being saved:
Image Failed to manipulate with MiniMagick, maybe it is not an image? `Original Error: ImageMagick/GraphicsMagick is not installed`

并在其下方显示图像,但不会保存帖子。

1 个答案:

答案 0 :(得分:1)

虽然form_for自动设置编码multipart,但在我的项目中我仍然定义它。试试这个:

<%= form_for(@post, hmtl: { multipart: true } ) do |f| %>