gpt4 book ai didi

ruby-on-rails - 将临时文件放在哪里以便能够访问模型数据/方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:19 31 4
gpt4 key购买 nike

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

pp Shop.all

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

class Tester < Shop
class Tester < ActiveRecord::Base

是的,我可以使用 pryirb,但我的测试涉及的代码不止几行,而且控制台很快就会变得困惑。

谢谢

最佳答案

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

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

  1. 在我的项目根目录中创建一个名为 rcs 的文件夹(“Rails Console Scripts”的缩写)
  2. 将该路径添加到 .gitignore,这样它就不会添加到版本控制中
  3. 将测试代码添加到 /rcs 中的一个命名良好的文件中,并根据需要在 Pry/Rails 控制台 session 中播放它

提示:您的 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 即可查看新的输出/结果.

关于ruby-on-rails - 将临时文件放在哪里以便能够访问模型数据/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44728689/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com