在 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
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