如何用1和0导出到txt替换true和false

时间:2017-02-25 16:04:24

标签: ruby

我对rails很新,这似乎是一个非常简单的问题,但我不明白。 所以我想从我的数据库中提取一个.txt文件。我想将“true”和“false”的布尔数据导出为“0”和“1”。这是我的代码:

if File.exist?("nanny_Input.inc")
  File.delete("nanny_Input.inc")
end
f=File.new("nanny_Input.inc", "w")


printf(f, "parameter FV(i) / \n")
@nannies = Nanny.all
@nannies.each { |nann|
  printf(f, nann.name + "\s" + nann.fuehrerschein.to_s + "\n") }
printf(f, "/;\n\n")

而nann.fuehrerschein ist boolean所以我只想要输出“0”和“1”。很抱歉这么简单的问题但如果有人帮助我会很好:)谢谢!!!

1 个答案:

答案 0 :(得分:0)

只检查boolean值是true还是false。在这种情况下,您可以使用三元运算符

printf(f, "#{nann.name} #{nann.fuehrerschein ? 1 : 0}\n") }

这是如何运作的 -

  • 对于每条记录,它将检查nann.fuehrerschein == true
  • 如果条件为真,则返回1
  • 否则它将返回0

此外,您可以稍微更改一下代码

File.open('nanny_Input.inc', 'w') do |file|
  file.puts"parameter FV(i) /"

  @nannies = Nanny.all
  @nannies.each do |nanny|
    file.puts "#{nanny.name} #{nanny.fuehrerschein ? 1 : 0}"
  end
end