gpt4 book ai didi

ruby-on-rails - 如何使用 Rails check_box 表单助手保存 'Yes' 或 'No' 而不是 'true' 或 'false'?

转载 作者:行者123 更新时间:2023-11-29 12:35:59 26 4
gpt4 key购买 nike

我有一个对象 @recipient,其属性为 responding。比如说,我希望 responding 通过 =f.check_box :responding, {}, 'Yes', 'No' 存储"is"或“否”,其中 docs 表示是可能的。

表单提交 YesNo 并且 PostgreSQL UPDATE 语句按预期使用 YesNo(我明白了在 $ rails server 终端窗口中)。但是 - 无论 responding 属性的数据类型( bool 值还是字符串)如何 - 最终存储在数据库中的始终是 truefalse。我很困惑。幕后发生了什么?如何强制 Rails 存储 YesNo?我应该(不)吗?我是不是误会了什么?

最佳答案

来自fine manual :

8.6. Boolean Type
[...]
Valid literal values for the "true" state are:

TRUE
't'
'true'
'y'
'yes'
'on'
'1'

For the "false" state, the following values can be used:

FALSE
'f'
'false'
'n'
'no'
'off'
'0'

因此字符串 'yes''no'truefalse 的有效别名(分别) 在 SQL 中。

如果您将 bool 列设置为 'yes',那么当您在 Rails 中访问该值时,您将返回 true'yes' 是 SQL 中 TRUE 的别名,Rails 用 Ruby 的 true 表示 TRUE SQL bool 值。 'no'false 也是如此。

最好将 truefalse Ruby 值转换为 'Yes''No' 当您显示您的模型而不是担心您的 bool 值在数据库中的具体表示时。


不确定这是否真的适用,因为对于服务器重启和列类型到底是什么存在一些混淆。 OP 想要再读一遍,所以我取消了这个。

关于ruby-on-rails - 如何使用 Rails check_box 表单助手保存 'Yes' 或 'No' 而不是 'true' 或 'false'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282676/

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