Внедрение сломано в 3.0.4 (stable)

Так, в ветке main есть это:

TopicEmbed.import_remote(@embed_url, user: User.find_by(username_lower: username.downcase))

а в ветке stable — это:

TopicEmbed.import_remote(user, @embed_url)

Обратите внимание на порядок параметров.

Теперь порт патча безопасности изменил сигнатуру функции в stable на новый порядок параметров, так что

def self.import_remote(import_user, url, opts = nil)

превратилось в

def self.import_remote(url, opts = nil)

и теперь параметр url получает объект User.

Изменение вызова функции решает проблему

diff --git a/lib/topic_retriever.rb b/lib/topic_retriever.rb
index b798df6cd7..6186ce5868 100644
--- a/lib/topic_retriever.rb
+++ b/lib/topic_retriever.rb
@@ -50,6 +50,6 @@ class TopicRetriever
     user = User.where(username_lower: username.downcase).first
     return if user.blank?
 
-    TopicEmbed.import_remote(user, @embed_url)
+    TopicEmbed.import_remote(@embed_url, user: user)
   end
 end

@blake

8 лайков