我在Rails 3.2中使用了strong_parameters gem。为了测试图像上传过程,我有一个带参数的传入请求:
{"photo"=>{"image"=>#<Rack::Test::UploadedFile:0x000000069ce1f8 @content_type="image/png", @original_filename="test.png", @tempfile=#<Tempfile:/tmp/test.png20130420-9529-1xuka4v-1>>, "status"=>"approved", "in_use"=>false}, "controller"=>"member/photos", "action"=>"create"}
如何允许图像属性进行分配?我试过了;
params.require(:photo).permit(:image)
但它不起作用并说Validation failed: Image can't be blank
。
当我允许params.require(:photo).permit!
的所有参数时,它可以正常工作。
答案 0 :(得分:1)
来自http://api.rubyonrails.org/classes/ActionController/Parameters.html
PERMITTED_SCALAR_TYPES = [String,Symbol,NilClass,Numeric, TrueClass,FalseClass,Date,Time,StringIO,IO, ActionDispatch :: Http :: UploadedFile, Rack :: Test :: UploadedFile ]
所以你只需要允许它作为标量类型:
params.require(:photo).permit(:image)
刚刚在Rails 4.1.1