diff --git a/lib/jsonapi/request.rb b/lib/jsonapi/request.rb
index <HASH>..<HASH> 100644
--- a/lib/jsonapi/request.rb
+++ b/lib/jsonapi/request.rb
@@ -185,7 +185,11 @@ module JSONAPI
           checked_has_one_associations[param] = @resource_klass.resource_for(association.type).verify_key(value, context)
         elsif association.is_a?(JSONAPI::Association::HasMany)
           keys = []
-          value.each do |value|
+          if value.is_a?(Array)
+            value.each do |val|
+              keys.push(@resource_klass.resource_for(association.type).verify_key(val, context))
+            end
+          else
             keys.push(@resource_klass.resource_for(association.type).verify_key(value, context))
           end
           checked_has_many_associations[param] = keys
diff --git a/test/controllers/controller_test.rb b/test/controllers/controller_test.rb
index <HASH>..<HASH> 100644
--- a/test/controllers/controller_test.rb
+++ b/test/controllers/controller_test.rb
@@ -526,7 +526,7 @@ class PostsControllerTest < ActionController::TestCase
     post_object = Post.find(3)
     assert_equal 1, post_object.tags.length
 
-    put :update_association, {post_id: 3, association: 'tags', tags: [5]}
+    put :update_association, {post_id: 3, association: 'tags', tags: 5}
 
     assert_response :no_content
     post_object = Post.find(3)
Fix issue if value was not an array for parse_params for a HasMany association