首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Virtus和booleans转换

Virtus和booleans转换
EN

Stack Overflow用户
提问于 2013-05-15 17:33:58
回答 1查看 346关注 0票数 2

我正在使用Virtus gem并试图将字符串自动转换为布尔值,但没有成功……如果你能看到这段代码出了什么问题...

代码语言:javascript
复制
Virtus.coercer do |config|
  config.string.boolean_map = { 'true' => true, 'false' => false }
end

class BookingWizard
  include Virtus

  extend ActiveModel::Naming
  include ActiveModel::Conversion
  include ActiveModel::Validations

  attribute :know_doctor, Boolean, default: false
end

1.9.3 (main):0 > b = BookingWizard.new
=> #<BookingWizard:0x007fea748bf338
 @know_doctor=false>
1.9.3 (main):0 > b.know_doctor = "true"
=> "true"
1.9.3 (main):0 > b.know_doctor
=> "true"
1.9.3 (main):0 > b.know_doctor.class
=> String
1.9.3 (main):0 > Virtus.coercer[String].to_boolean("true")
=> true
EN

回答 1

Stack Overflow用户

发布于 2019-08-01 22:15:51

如果您已经定义了一个Boolean类,请尝试使用Axiom::Types::Boolean而不是Boolean

代码语言:javascript
复制
class BookingWizard
  include Virtus

  attribute :know_doctor, Axiom::Types::Boolean, default: false
end

如果这样可以工作,那么您可能有一个在Virtus类之前找到的::Boolean类。在pry中使用show-source Boolean查找您的Boolean类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16561512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档