6

我在 Rails 3.2 中使用 strong_parameters gem。为了测试图像上传过程,我有一个带有参数的传入 post 请求:

{"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!它工作正常。

4

1 回答 1

2

来自http://api.rubyonrails.org/classes/ActionController/Parameters.html

PERMITTED_SCALAR_TYPES = [字符串、符号、NilClass、数字、TrueClass、FalseClass、日期、时间、StringIO、IO、ActionDispatch::Http::UploadedFile、Rack::Test::UploadedFile ]

所以你只需要允许它作为一个标量类型:

params.require(:photo).permit(:image)

刚刚测试过Rails 4.1.1

于 2014-06-04T17:54:59.753 回答