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

时间:2015-01-16 18:57:55

标签: carrierwave null minimagick

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

使用minimagick。

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

这是我的代码。

  1. 应用程序/模型/ user.rb
  2.   

    class User<的ActiveRecord ::基

         
        

    mount_uploader:image,ImageUploader

      
         

    1. mypage.html.erb(表单操作为" edit_complete")
    2. <input type="file" name='image'>

      1. users_controller.rb
      2.   

        def edit_complete

             
            

        user = User.find(session [:user_id])

                 

        user.image = params [:image]

                 

        user.save

                 

        redirect_to:back

          
             

        1. 应用程序/上传/ image_uploader.rb
        2.   

          class ImageUploader&lt; CarrierWave ::上传::基

               
              

          包括CarrierWave :: MiniMagick

                   

          存储:文件

                   

          def store_dir

                   

          &#34;上载/#{model.class.to_s.underscore} /#{mounted_as} / {#} model.id&#34;

                   

            
               

          没有出现错误,但数据库中没有保存任何内容。

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

          但是,当我上传1.png文件时, 没有保存,并且不生成public / upload文件夹。 数据库中还显示nil值。

          这有什么解决方案吗?

2 个答案:

答案 0 :(得分:2)

在文件上传中您需要在表单标记中使用multipart选项,即表单标记中的multipart选项应为true。

答案 1 :(得分:1)

尝试这样的事情:

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