首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rails中生成多个单词引用字段的正确方法是什么?

在rails中生成多个单词引用字段的正确方法是什么?
EN

Stack Overflow用户
提问于 2015-02-16 06:52:37
回答 1查看 3.2K关注 0票数 4
代码语言:javascript
复制
rails generate model product name:string twoWord:string twoWordRef:references

生成以下迁移文件

代码语言:javascript
复制
class CreateProducts < ActiveRecord::Migration
  def change
    create_table :products do |t|
      t.string :name
      t.string :twoWord
      t.references :twoWordRef, index: true

      t.timestamps null: false
    end
    add_foreign_key :products, :twoWordRefs
  end
end

我认为字段名应该是蛇案例,而不是骆驼案例,然而rails generate model正在迁移文件中生成骆驼案例字段名。我想我是在跟随我的generate命令中的例子。

稍后,当我试图通过引用更新rails时,我还会发现问题,其中rails假设外键在蛇的情况下,但在表中找不到我的外键。

我做错了什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 07:00:02

Rails自动生成蛇情况下的数据库表。例如,如果您的模型是TestModel,数据库中相应的表将是test_models。然而,属性的情况并非如此。

取而代之的是这样做:

代码语言:javascript
复制
rails generate model product name:string two_word:string two_word_ref:references

更新

这完全超出了OP要求的范围,但我认为如果您启动Rails,共享它可能会有所帮助。Rails在命名模型和表时使用了一些约定(比如模型的单数名称和表的复数)。为此,它使用ActiveSupport::Inflector模块。

Inflector将单词从单数转换为复数,将类名转换为表名,将模块化类名转换为无类,将类名转换为外键。在inflections.rb中保留了复数、奇异化和不可数词的默认变化。

您可以使用它的分类制表方法验证相应的名称。例:

代码语言:javascript
复制
"test_models".classify
# => "TestModel"

"TestModel".tableize
# => "test_models"
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28535969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档