gpt4 book ai didi

ruby-on-rails - rails 中 postgresql 数据库中的 camelCase 列(ActiveRecord)

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:37 27 4
gpt4 key购买 nike

我有 Post 模型。它有标题和正文。我想在那里添加简短描述。虽然,我知道如何使用 snake_case(即 short_description)来做到这一点,但我想知道是否有任何方法可以创建一个帖子驼峰式(即 shortDescription)。

这是我的 schema.rb 文件

  create_table "posts", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "title"
t.text "body"
t.string "shortDescription"
end

我向 Controller 和表单添加了 shortDescription。当我转到 posts#create 时,出现以下错误。

未定义方法“shortDescription”

现在我要回滚数据库,并创建 short_description。这不是什么大问题,但是出于对技术的好奇,我想知道如何使用驼峰命名法。 (也许有一天我需要使用 Rails 应用程序加入具有驼峰式属性的数据库)。

任何建议表示赞赏。谢谢!

最佳答案

在 Postgres(以及 SQL 语言的 ISO/ANSI 标准)中,对象名称不区分大小写。

因此 objectNameobjectname 相同,在决定使用驼峰命名时必须考虑到这一点。

您可以告诉 Postgres,您确实想要使用区分大小写的名称——只需在名称周围添加双引号:"objectName"。请记住,稍后您将无法使用诸如 objectName 之类的对象,它只会尝试查找 objectname 而不会找到它,从而触发错误, 因此必须使用双引号。

此外,在使用双引号区分大小写的对象名称时有一些小注意事项(例如,psql 的 \d 命令将像这样列出您的对象:"public.objectName ",这并不完全正确,正确的名称是 "public"."objectName" 等)。

在少数项目中,我有 Camel 风格的表/列名称,这总是有些痛苦,尤其是当新开发人员开始使用此类项目时。

所以我建议在 SQL 中始终使用带下划线的名称 (object_name)。

关于ruby-on-rails - rails 中 postgresql 数据库中的 camelCase 列(ActiveRecord),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45253713/

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