Carrierwave和MiniMagick - 图像无法上传

时间:2013-09-06 14:48:38

标签: ruby-on-rails ruby-on-rails-3 carrierwave minimagick

我在Nitrous.io上运行了一个带有Ruby 2和Rails 4.0设置的应用程序。

我安装了carrierwave和Mini_magick宝石,但我的图片似乎还没有上传。

我有以下设置:

profile_uploader.rb

class ProfileUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  storage :file

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

end

模型 - list.rb

class List < ActiveRecord::Base
  mount_uploader :profile, ProfileUploader
end

New.html.haml

= form_for @list, :html => {:multipart => true} do |f|

  .field
    = f.label :name
    = f.text_field :name

  .field
    = f.label :telephone
    = f.text_field :telephone

  .field
    = f.label :Profile_image
    = f.file_field :profile 
    = f.hidden_field :profile_cache

  = f.submit

= link_to 'Back', lists_path

真的无法解决为什么这不起作用,因为我相信一切都设置正确。人们可以提供的任何帮助都会很棒!

1 个答案:

答案 0 :(得分:2)

事实证明,在我的控制器中,我有以下内容:

def create
    @list = List.new(list_params)
    if @list.save
      redirect_to lists_path
    else
      render 'lists#new'
    end
end
....

def list_params
    params.require(:list).permit(:name, :telephone)
end

只要我将:profile添加到list_params定义,它就开始工作了:)