gpt4 book ai didi

ruby-on-rails - 如果 :string is for text, 复选框数据如何存储在 Rails 中?

转载 作者:太空宇宙 更新时间:2023-11-03 17:26:46 25 4
gpt4 key购买 nike

rails g migration add_anonymous_to_message anonymous:???

如果我要在消息中添加标题等,那么我会放置 rails g migration add_title_to_message title:string 但是如果 :anonymous 是消息提交表单中的复选框,我该如何将其添加到数据库,以便只有两个选项:box checked=anonymous 和 box unchecked=username displayed?

谢谢

最佳答案

您确定需要另一个数据库列吗?你能做的是

  • 添加一列 username:string这允许 NULL值(默认)
  • 验证模型,如果anonymous未选中,保存空白用户名无效
  • 验证模型,如果anonymous被选中,用户名总是保存为空白(nil),无论表单值如何
  • 稍后检查消息是否匿名时,只需检查 message.username.nil?

如果出于某种原因您确实需要为 anonymous 使用单独的数据库列,它应该是这样的:

rails g migration add_anonymous_to_message anonymous:boolean

虽然不是所有的 RDBMS 都支持 boolean列(MySQL 没有),Rails 通过生成一个 TINYINT(1) 来处理这个问题或指定 boolean 时的类似列,它被设置为 01 .

关于ruby-on-rails - 如果 :string is for text, 复选框数据如何存储在 Rails 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049461/

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