6

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!、正常に動作します。

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 に答える