在Rails中加载控制台 之后,如何专门运行代码 ?所有其他答案和问题似乎都围绕着某些点运行一个钩子,但不一定是 之后 ,因为我正在寻找。
期望的结果:
> rails console
Loading development environment (Rails 5.1.1)
pry(main)>
Welcome
我试图同时使用console
挂钩和initializer
挂钩但没有成功。 e.g。
尝试1:
# config/application.rb
console do
puts "Welcome"
end
结果:
> rails console
Welcome # Too early
Loading development environment (Rails 5.1.1)
pry(main)>
尝试2:
# config/application.rb
initializer "welcome", after: :disable_dependency_loading do |app|
puts "Welcome"
end
结果:
> rails console
Welcome # Too early
Loading development environment (Rails 5.1.1)
pry(main)>
答案 0 :(得分:2)
使用IRB时
创建一个。 irbrc 文件(它应该是您项目的根目录),您应该为IRB_RC
设置conf。以下是文件
#.irbrc
IRB.conf[:IRB_RC] = Proc.new do
puts "Welcome"
end
<强>输出强>
~/D/p/p/s/console_test> rc
Running via Spring preloader in process 60648
Loading development environment (Rails 5.1.4)
Welcome #<======= Desired Result
irb(main):001:0>
使用PRY时
创建一个 .pryrc 文件(它应该是您项目的根目录),您应该为exec_string
设置conf。以下是文件
#.pryrc
class WelcomeClass
def self.greet
puts "Welcome"
end
end
Pry.config.exec_string = WelcomeClass.greet
<强>输出强>
~/D/p/p/s/console_test> rails console
Running via Spring preloader in process 61794
Loading development environment (Rails 5.1.4)
Welcome #<======= Desired Result
[1] pry(main)>
答案 1 :(得分:1)
在根目录中创建“.irbrc”。这只是一个常规的Ruby脚本文件,您可以在IRB启动时运行代码。有关示例,请参阅Tweaking IRB。
答案 2 :(得分:0)
你可以像这样创建一个配置/初始化器:
# config/initializers/001_test_console.rb
module Rails::ConsoleMethods
def self.included(base)
puts "Welcome!"
end
end
注意:我没有尝试使用pry,只是标准的irb。