我在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
真的无法解决为什么这不起作用,因为我相信一切都设置正确。人们可以提供的任何帮助都会很棒!
答案 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定义,它就开始工作了:)