【发布时间】:2016-02-16 18:06:35
【问题描述】:
我正在尝试上传图片,并按照tutorial 了解如何上传,现在我正在对其进行扩充以满足我未来的需求。
我的问题是,我正在尝试创建一个模型,您唯一要做的就是上传图片,但如果您点击保存并且图片不存在,那么您将留在原地并收到错误警告.
我得到的错误信息是这样的:
ActionController::ParameterMissing in ImagesController#create
param is missing or the value is empty: image
Extracted source (around line #72):
70 71 72 73 74
# Never trust parameters from the scary internet, only allow the white list through.
def image_params
params.require(:image).permit(:image, :remove_image)
end
结束
所以我承认我在这里做了一件有点令人困惑的事情,将其中一列命名为与我的模型相同的东西,所以这是我的代码:
image.rb 即图像模型:
class Image < ActiveRecord::Base
mount_uploader :image, ImageUploader
validates_presence_of :image
validate :image_size_validation
validates :image, presence: true
private
def image_size_validation
errors[:image] << "should be less than 500KB" if image.size > 0.5.megabytes
end
结束
Image Controller,只是create方法:
def create
@image = Image.new(image_params)
respond_to do |format|
if @image.save
format.html { redirect_to @image, notice: 'Image was successfully created.' }
format.json { render :show, status: :created, location: @image }
else
format.html { render :new }
format.json { render json: @image.errors, status: :unprocessable_entity }
end
end
end
我认为validates :image, presence: true 可以解决我的问题,但我在这里寻求帮助。这是我第一次尝试上传图片/文件,所以无论您能给我什么帮助,我们都非常感激。
谢谢
【问题讨论】:
标签: validation ruby-on-rails-4 carrierwave params actioncontroller