假设每次Rails控制台出现时我都想要问候语:
Scotts-MBP-4:ucode scott$ rails c
Loading development environment (Rails 4.2.1)
Hello there! I'm a custom greeting
2.1.5 :001 >
我会在哪里放puts 'Hello there! I\'m a custom greeting'
声明?
另一个Stackoverflow回答建议,我也在其他地方读过这个,我可以把它放在这样的初始化器中:
# config/initializers/console_greeting.rb
if defined?(Rails::Console)
puts 'Hello there! I\'m a custom greeting'
end
这对我不起作用:(。即使没有if defined?(Rails::Console)
我仍然没有得到输出。看起来像我进入控制台时初始化器没有运行,尽管其他人建议。
答案 0 :(得分:4)
我使用〜/ .irbrc用于类似目的(我在每个控制台会话中都需要一个gem)。例如,我的.irbrc
if (defined? Rails)
# Rails specific
end
# common for all irb sessions
您可以使用项目名称将执行代码限制为仅一个项目的控制台:
if (defined? Rails) && (defined? YourProject)
# code goes here
end
答案 1 :(得分:0)
以下内容适用于 Rails 6:
只需将一个块传递给 Edit: i have also tried postData in the intercept
,例如
Rails.application.console
现在在启动 rails 生产控制台时,将打印自定义消息。这段代码不会在你启动 rails server 的时候执行。
如果您希望它在所有环境中运行,请删除 # config/initializers/custom_console_message.rb
if Rails.env.production?
Rails.application.console do
puts "Custom message here"
end
end
。