当前位置:  开发笔记 > 后端 > 正文

将TrueClass/FalseClass的值输出为整数或字符串/

如何解决《将TrueClass/FalseClass的值输出为整数或字符串/》经验,为你挑选了2个好方法。

我试图找出是否有一种简单的方法来执行以下操作,将to_i方法添加到TrueClass/FalseClass.

这是一个两难的问题:我的rails应用程序中有一个布尔字段 - 显然在mysql中存储为Tinyint.然而 - 我需要生成基于数据的XML在MySQL并将其发送给客户 - 有SOAP服务需要领域的问题有0或1,因为此字段的值.因此,在XML生成的时间,我需要我的假转换为0,我真为1(这是他们是如何存储在数据库中).由于True&False缺少to_i方法,我可以编写一些if语句,根据true/false状态生成1或0.但是,我有大约10个这些指标和创建,如果/其他每个不是很干.那你建议我做什么?

或者我可以在True/False类中添加to_i方法.但是我不知道我应该在rails应用程序中将它放在哪里?只是在这个特定的模型或其他地方?



1> mipadi..:

你可以创建一个文件,例如lib/boolean_ints.rb和猴子修补to_i方法TrueClassFalseClass,如你所说.然后,在您需要使用该to_i方法的模型或控制器中,您可以放置

require 'boolean_ints'

在顶部,他们可以使用.



2> Joshua Pinte..:

使用humanize和扩展TrueClass和FalseClass to_i.

这出现在我的大多数项目中,所以我使用初始化程序(如果你使用的是Rails)将这两个有用的方法添加到每个类中,如下所示:

配置/初始化/ true_and_false.rb

class TrueClass
  def humanize
    'Yes'
  end

  def to_i
    1
  end
end

class FalseClass
  def humanize
    'No'
  end

  def to_i
    0
  end
end

然后它使"人类消费""机器消费"的呈现变得true非常容易:

> true.humanize     #=> Yes
> true.to_i         #=> 1

> false.humanize    #=> No
> false.to_i        #=> 0

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有