ruby-on-rails – 在Rails控制台中使用fixture finder助手

我经常发现我希望能够使用Rails控制台中的测试夹具查找器(例如用户(:david)).是否有一个特定的Rails模块,我可以在控制台提示符下加载,或者我可以安装的gem,这些可以使这些模块可用吗?

我对谷歌甲骨文的疑问没有改变,所以我没有屏住呼吸,但我希望有人在这里知道一个秘密并愿意分享.

解决方法

自己搞清楚了.这适用于IRB和 Pry.只需要将以下行添加到我的.irbrc(和/或.pryrc)文件中.
require 'active_record/fixtures'

def method_missing(method_name,*args,&block)
  if fixture_names.include?(method_name)
    method_name.to_s.singularize.titleize.constantize.find(fixture_id(args[0]))
  else
    super
  end
end

def fixture_id(label)
  ActiveRecord::FixtureSet.identify(label)
end

def fixture_names
  Dir["#{Rails.root}/test/fixtures/*.yml"].map { |filename| filename.match(/\/([^\/]+)\.yml/)[1].to_sym }
end

现在,假设有一个test / fixtures / users.yml文件并且它包含一个名为diane:的fixture,那么来自Rails控制台的users(:diane)成功返回该用户.

m_x的answer到原始问题有助于达到这一点.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...