Я пытаюсь проверить мой контроллер с загрузкой изображения, но в моем интеграционном тесте параметр никогда не разрешается. Что-то я делаю не так? Я использую последнюю версию Rails 6.0.2.1. Ниже мой тест и что у меня есть в контроллере.
Тест
test "should return error" do
image = fixture_file_upload(file_fixture('avatar.jpg'), 'image/jpg')
put organisation_images_path(@organiser),
params: { organiser: { avatar: image } },
as: :json
assert_response :success
end
Контроллер
def update
if @organiser.update(org_params)
render json: {url: url_for(@organiser.avatar)}
else
render json: {errors: @organiser.errors.full_messages}, status: :unprocessable_entity
end
end
private
def org_params
params.require(:organiser).permit(:avatar)
end
Параметры
<ActionController::Parameters {"organiser"=><ActionController::Parameters {"avatar"=><ActionController::Parameters {"original_filename"=>"avatar.jpg", "tempfile"=>"#<File:0x00007f8469065b40>", "content_type"=>"image/jpg"} permitted: false>} permitted: false>, "controller"=>"resources/images", "action"=>"update", "organisation_id"=>"123", "image"=>{"organiser"=>{"cover"=>{"original_filename"=>"avatar.jpg", "tempfile"=>"#<File:0x00007f8469065b40>", "content_type"=>"image/jpg"}}}} permitted: false>
Как видите, параметр avatar
не разрешен, и это происходит после того, как я впервые позвонил org_params
.