在 Rails 测试中给定一个 id,如何找到灯具的名称?

How do I find a fixture's name, given an id in Rails tests?

Rails 提供了一种根据灯具名称查找 ID 的方法:

参见 [ActiveRecord::FixtureSet.identify](http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html#method-c-identify

假设,在一个失败的测试中,我想打印出一个有问题的夹具的名称,给定它的 ID。如何进行反向查找?

这是我想出的一些代码,直到出现更好的代码。它遍历给定 table 和 returns 名称的所有已加载灯具,如果 "identifies" 到给定 id.

class ActiveRecord::FixtureSet
  def self.reverse_lookup(table, id)
    ActiveRecord::FixtureSet.all_loaded_fixtures[table.to_s].each do |key, _|
      return key if ActiveRecord::FixtureSet.identify(key) == id
    end
    nil
  end
end