Bex*_*yev 6 ruby postgresql activerecord ruby-on-rails
我有邮政模型。它有标题和正文。我想在其中添加简短的描述。虽然,我知道如何使用snake_case(即short_description)来做到这一点,但我想知道是否有任何方法可以使用camelCase(即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
我向控制器和表单添加了简短的描述。当我转到 posts#create 时,出现以下错误。
未定义的方法“shortDescription”
现在我将回滚数据库并创建短描述。这不是一个大问题,但是由于我对技术的好奇,我想知道如何使用camelCase。(也许有一天我需要使用 Rails 应用程序加入具有驼峰命名属性的数据库)。
任何建议表示赞赏。谢谢你!
Nic*_*ick 10
在 Postgres 中(以及 SQL 语言的 ISO/ANSI 标准),对象名称不区分大小写。
\n\n所以objectName是一样的objectname,在决定使用驼峰命名时必须考虑到这一点。
您可以告诉 Postgres,您确实想要使用区分大小写的名称 \xe2\x80\x93 只需在名称周围添加双引号:"objectName"。请记住,稍后您将无法使用诸如 之类的对象objectName,它只会尝试查找objectname但找不到它,从而触发错误,因此必须使用双引号。
另外,在使用双引号区分大小写的对象名称时,还有一些小注意事项(例如, psql\ 的\\d命令将像这样列出您的对象:"public.objectName",这并不是真正正确的,正确的名称是"public"."objectName",等等)。
在少数项目中,我有骆驼式的表/列名称,这总是很痛苦,特别是当新开发人员开始使用此类项目时。
\n\n所以我建议在 SQL 中始终使用带下划线的名称 ( object_name)。
| 归档时间: | 
 | 
| 查看次数: | 6083 次 | 
| 最近记录: |