相关疑难解决方法(0)

如何在IRB/Rails控制台中抑制返回值的输出?

例如,如果我进入IRB并执行以下操作:

jruby-1.6.7 :026 > puts [1,2,3,4,5]
1
2
3
4
5
=> nil 
Run Code Online (Sandbox Code Playgroud)

反正有压制nil吗?问题是,如果我放入一个大型数据结构,它会发送一些其他不相关的返回响应.我更感兴趣的是看到调试语句的输出我在一个块中运行,并且必须不断向上滚动并查找真实数据.

ruby ruby-on-rails irb

31
推荐指数
4
解决办法
9348
查看次数

在Rake任务db:schema:load中抑制输出

如何抑制db:load:schema的输出?运行

bundle exec rake db:schema:load
Run Code Online (Sandbox Code Playgroud)

-s,-q或甚至VERBOSE=false选项使得在输出没有差别; 我不想看的相同的"create_table ... add_index ..."垃圾出现了.我从自定义Rake任务中调用它,我不希望用户每次都看到所有这些.

更新:

我使用@Deefour的一些指导解决了这个问题:

system "bundle exec rake db:schema:load -s RAILS_ENV=#{Rails.env} >NUL"
Run Code Online (Sandbox Code Playgroud)

>NUL适用于Windows机器,基于Unix可以使用> /dev/null.

而不是

Rake::Task['db:schema:load'].invoke
Run Code Online (Sandbox Code Playgroud)

正如我在自定义任务中所做的那样.请注意,此解决方案特定于Windows计算机.对于基于Unix的机器,我想你应该能够使用下面接受的解决方案.

windows rake ruby-on-rails ruby-on-rails-3

8
推荐指数
1
解决办法
4070
查看次数

抑制IRB输出?

可能重复:
Rails控制台,如何停止返回值的输出?

在IRB中考虑此会话:

>> for a in 1..5 do
?>     puts a
>> end
1
2
3
4
5
=> 1..5
>> 
Run Code Online (Sandbox Code Playgroud)

如何抑制输出=> 1..5?如果我在Rails控制台会话中执行此操作,这很重要:

for post in Post.find(:all) do
    if post.submit_time > Time.now
        puts "Corrupted post #{post.id} is from the future"
    end
end
Run Code Online (Sandbox Code Playgroud)

我不希望所有的帖子最后都作为一个数组打印出来.如何抑制输出?

我确信还有其他方法可以做到这一点,比如find_eachRuby脚本,但我更感兴趣的是在交互式会话中这样做.

ruby ruby-on-rails irb

7
推荐指数
2
解决办法
2816
查看次数

标签 统计

ruby-on-rails ×3

irb ×2

ruby ×2

rake ×1

ruby-on-rails-3 ×1

windows ×1