gpt4 book ai didi

ruby-on-rails - Rails/ActiveRecord 与 mysql BIT 配合使用

转载 作者:行者123 更新时间:2023-12-03 00:41:25 26 4
gpt4 key购买 nike

我在 Rails 和 ActiveRecord 中使用 mysql 位时遇到问题。我们为地点的发布状态存储一些位。

`published` bit(1) NOT NULL

我在 Rails 中将其搭建为 published:binary

Locality.first.published返回“\x01”

如何让 Rails 将此字段视为 bool 值?

有一个过时的票证,但破解 ActiveRecord 并不是真正的选择。 https://rails.lighthouseapp.com/projects/8994/tickets/6102-activerecord-boolean-support-with-bit1-mysql-data-type

最佳答案

您可以覆盖已发布属性的属性读取器:

class Locality < ActiveRecord::Base
# overwrite the attribute reader of the published attribute
def published
self.read_attribute(:published) == "\x01" ? true : false
end
end

更新

或者为您的 bool 返回值生成一个方法

class Locality < ActiveRecord::Base
def to_boolean
self.published == "\x01" ? true : false
end
end

所以你可以调用:

 Locality.first.published.to_boolean => true || false

但我认为第一个解决方案(覆盖属性读取器)更好。

关于ruby-on-rails - Rails/ActiveRecord 与 mysql BIT 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16416262/

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