gpt4 book ai didi

ruby - Virtus 和 bool 值转换

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:03 24 4
gpt4 key购买 nike

我正在使用 Virtus gem 并尝试将字符串自动转换为 bool 值,但没有成功...如果您能看出这段代码有什么问题...

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

最佳答案

尝试使用 Axiom::Types::Boolean 而不是 Boolean 以防你已经定义了一个 Boolean 类。

class BookingWizard
include Virtus

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

如果这可行,您可能有一个 ::Boolean 类,它在 Virtus 类之前被发现。在 pry 中使用 show-source Boolean找到您的 Boolean 类。

关于ruby - Virtus 和 bool 值转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16561512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com