0

我有一个在 Nitrous.io 上运行的应用程序,安装了 Ruby 2 和 Rails 4.0。

我安装了carrierwave 和Mini_magick gem,但我的图像似乎仍然没有上传。

我有以下设置:

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

新的.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

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

4

1 回答 1

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 定义,它就开始工作了:)

于 2013-09-06T16:02:53.417 回答