gpt4 book ai didi

ruby-on-rails - 在rails中生成多字引用字段的正确方法是什么

转载 作者:行者123 更新时间:2023-12-03 16:02:04 26 4
gpt4 key购买 nike

rails generate model product name:string twoWord:string twoWordRef:references

生成以下迁移文件
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

我认为字段名称应该是蛇形,而不是 Camel 式,但是 rails generate model正在迁移文件中生成驼峰式字段名称。我想我正在关注我的生成命令中的示例。

稍后,当我尝试通过引用进行更新时,我也发现了问题,其中 rails 假定外键处于蛇形盒中并​​且无法在表中找到我的外键。

我究竟做错了什么?谢谢

最佳答案

Rails 在蛇形情况下自动生成数据库表。例如,如果您的模型是 TestModel数据库中对应的表为test_models .但是,属性并非如此。

改为这样做:

rails generate model product name:string two_word:string two_word_ref:references

更新

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

The Inflector transforms words from singular to plural, class names to table names, modularized class names to ones without, and class names to foreign keys. The default inflections for pluralization, singularization, and uncountable words are kept in inflections.rb.



您可以使用它的 classifytableize方法来验证相应的名称。例如:
"test_models".classify
# => "TestModel"

"TestModel".tableize
# => "test_models"

关于ruby-on-rails - 在rails中生成多字引用字段的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28535969/

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