소스 검색

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

Petrik de Heus 5 달 전
부모
커밋
cfe9dc9d49
2개의 변경된 파일5개의 추가작업 그리고 6개의 파일을 삭제
  1. 1 1
      frameworks/Ruby/hanami/app/actions/updates/index.rb
  2. 4 5
      frameworks/Ruby/hanami/app/repos/world_repo.rb

+ 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