2016-12-14 77 views
0

我正在使用Carrierwave,以便用户可以上传图像。我正在创建一个博客网站。我没有错误,但图像没有出现。我希望图像显示在发布视图中。这里是我的代码:Ruby-On-Rails如何显示用户上传的图像

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:下面没有图像。

UPDATE:

我安装的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` 

,并在其下面显示的图像,但它不会保存职位。

+0

try @ post.image_url.to_s –

+0

@TonyVincent不幸的是,没有喜悦! – Jill

回答

1

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

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

非常感谢:D – Jill

+1

感谢您!我第一个接受的答案! Celebraaation! :D –

+2

耶! :D快乐的日子! – Jill