Sfoglia il codice sorgente

[ruby/hanami] Don't make extra query for update (#9764)

Petrik de Heus 5 mesi fa
parent
commit
cfe9dc9d49

+ 1 - 1
frameworks/Ruby/hanami/app/actions/updates/index.rb

@@ -13,7 +13,7 @@ module HelloWorld
 
         def handle(request, response)
           worlds = ALL_IDS.sample(queries(request)).map do |id|
-            world_repo.update(id)
+            world_repo.update_random_number(id)
           end
           response.format = :json
           response.body = worlds.to_json

+ 4 - 5
frameworks/Ruby/hanami/app/repos/world_repo.rb

@@ -7,13 +7,12 @@ module HelloWorld
         worlds.by_pk(id).one
       end
 
-      def update(id)
-        world = worlds.by_pk(id)
-        world_hash = world.one.to_h
+      def update_random_number(id)
+        world = find(id)
+        world_hash = world.to_h
         new_value = random_id
         new_value = random_id while new_value == world_hash[:randomnumber]
-        world_hash[:randomnumber] = new_value
-        world.changeset(:update, **world_hash).commit
+        worlds.where(id: id).update({ randomnumber: new_value })
         world_hash
       end