Não consigo encontrar um TopicCustomField neste momento (mas eu te disse onde procurar! :wink)
Aqui está isso:
[4] pry(main)> CategoryCustomField.last
=> #<CategoryCustomField:0x000055be74a00bd0
id: 2,
category_id: 8,
name: "enable_accepted_answers",
value: "true",
created_at: Mon, 26 Apr 2021 15:45:07.862617000 UTC +00:00,
updated_at: Mon, 26 Apr 2021 15:45:07.862617000 UTC +00:00>
Então algo como
tcf=TopicCustomField.where(name: 'fun_level', value: 'super-duper-fun')
Depois, você pode obter o topic_id e outros dados de tcf (é um array de todas as correspondências). Se você souber o topic_id, poderia fazer um TopicCustomField.find_by(<todos os três itens para torná-lo único>).