gpt4 book ai didi

ruby-on-rails - 如何强制 Rails ActiveRecord 字符串列只接受字符串?

转载 作者:行者123 更新时间:2023-12-01 10:39:28 24 4
gpt4 key购买 nike

我有一个带有 title:string 字段的 Post

post = Post.create!
#=> Post created
post.title = "foo"
post.save!
# success
post.title = 1
post.save!
# succeeds, but I want it to throw a type mismatch exception

我如何获得最后一次保存!抛出类型不匹配?

最佳答案

这确实违背了 Ruby 的本质。如果它是字符串列,数据库层将负责将该值呈现为字符串并保存。

类型的概念在 Ruby 中与在其他语言中不同。一般来说,如果一个对象支持 to_s,那么它就被认为是 string-enough 可以使用,Duck Typing 的基本原则.

如果您传入无法呈现为字符串的内容,则会出现异常。例如:

post.title = Post.find(5)

如果您希望确保您的字段不是数字,您应该添加强制执行特定格式的验证。

关于ruby-on-rails - 如何强制 Rails ActiveRecord 字符串列只接受字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411954/

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