在哪里放刮草文件能够访问模型数据/方法

时间:2017-06-23 19:28:40

标签: ruby-on-rails ruby

我有一个文件,用于测试想法并确保代码重构正在运行。我希望能够从此临时文件中访问我的Shop模型数据。例如,我希望能够在tester.rb文件中执行此操作:

pp Shop.all

我会把它放在哪里,它应该继承什么才能使它工作?我试过以下但没有成功。 我将tester.rb文件放在models文件夹中并尝试继承自:

class Tester < Shop
class Tester < ActiveRecord::Base

是的,我可以使用pryirb但我的测试涉及的不仅仅是几行代码,并且控制台很快就会变得混乱。

由于

1 个答案:

答案 0 :(得分:3)

一种方法是使用Pry's play command

我为测试或编写一次性脚本所做的是:

  1. 在我的项目根目录中创建一个名为rcs的文件夹(“Rails控制台脚本”的缩写)
  2. 将该路径添加到 .gitignore ,以便不会将其添加到版本控制中
  3. 将测试代码添加到 / rcs 中命名良好的文件中,并根据需要在Pry / Rails控制台会话中播放
  4. Protip:你的RCS脚本的第一行应该始终是reload!,这样当你播放它时,你会重新加载控制台并重新编写脚本。

    示例rcs脚本:

    # /rcs/bm.rb
    
    reload!
    
    Benchmark.bmbm { |x|
      iterations = 10_000_000
      x.report("double quotes") {
        iterations.times do |i|
          "hi"
        end
      }
      x.report("single quotes") {
        iterations.times do |i|
          'hi'
        end
      }
    }
    

    示例.gitignore条目:

    rcs/
    

    Rails控制台中的示例调用:

    play rcs/bm.rb
    

    在您的情况下,您可能想要创建 /rcs/shop_test.rb 并且只修补您的Shop类。例如:

    reload!
    
    class Shop
      def my_method
        # Do something special
      end
    end
    
    shop = Shop.new
    shop.my_method
    

    每次编辑 /rcs/shopt_test.rb 以查看新的输出/结果时,只需从Rails控制台调用play rcs/shop_test.rb