首页 文章

rails / carrierwave:通过carrierwave,minimagick上传图像后保存的nil值

提问于
浏览
2

我正在尝试通过载波上传图像,并使用rails .

使用minimagick .

实际上,我认为上传工作正常,但图像没有显示出来 . 它还在数据库中显示 nil 值 .

这是我的代码 .

  • app / models / user.rb

class User <ActiveRecord :: Base mount_uploader:image,ImageUploader end

  • mypage.html.erb(表单操作为"edit_complete")

<input type="file" name='image'>

  • users_controller.rb

def edit_complete user = User.find(session [:user_id])user.image = params [:image] user.save redirect_to:back end

  • app / uploaders / image_uploader.rb

类ImageUploader <CarrierWave :: Uploader :: Base包括CarrierWave :: MiniMagick存储:文件def store_dir“uploads /# /# /#”end end

没有出现错误,但没有保存在数据库中 .

我希望图像文件应保存在 public/upload 文件夹中,图像文件应显示在 rails c User.all 的数据库中 .

但是,当我上传1.png文件时,没有保存任何内容,也没有生成public / upload文件夹 . 另外在数据库中显示 nil 值 .

这有什么解决方案吗?

2 回答

  • 2

    在文件上传中您需要在表单标记中使用multipart选项,即在表单标记中多部分选项应为true .

  • 1

    尝试这样的事情:

    <%= form_for @user, :html => {:multipart => true} do |f| %>
            <%= f.file_field :image%>
            <%= f.submit 'Edit'%>
        <% end %>
    

相关问题