Ruby on rails Rails:表名中的下划线会混淆设备
我有一个rails应用程序,有3种型号,Ruby on rails Rails:表名中的下划线会混淆设备,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我有一个rails应用程序,有3种型号,OrderItem、Photo和PhotoSize 从schema.rb中,这是我的表order\u item(我在这里删除了不相关的列): “生成夹具”文件如下所示: one: order: one photo_size: one photo: one two: order: two photo_size: two photo: two 现在运行我的测试,我得到了错误 ActiveRecord::Fixture::Fixtur
OrderItem
、Photo
和PhotoSize
从schema.rb中,这是我的表order\u item
(我在这里删除了不相关的列):
“生成夹具”文件如下所示:
one:
order: one
photo_size: one
photo: one
two:
order: two
photo_size: two
photo: two
现在运行我的测试,我得到了错误
ActiveRecord::Fixture::FixtureError:表“order\u items”没有列
命名为“照片大小”
现在夹具中有photo
,表中有相应的photo\u id
就可以了photo\u size
及其相应的photo\u size\u id
会抛出一个错误。有人能解释这种差异吗?如何解决这个问题
我试着建议添加一个关于如何使照片大小多元化的声明,但这并没有解决问题。注释出夹具文件会像预期的那样自然地停止错误。在您的
订单项
模型中是否有所属的:照片大小
?关联的标签引用只对所属的关联起作用,因为它取决于外键,它位于声明属于
关联的类上
在fixture中指定外键可能非常脆弱,更不用说难以阅读了。由于活动记录可以从其标签中找出任何设备的ID,因此可以按标签而不是ID指定FK
:
在具有外键的模型中,始终使用#belient_to
关联
不,我有一个:照片大小应该是属于你的-那是你的问题。属于\u
属于外键列所在的任何型号。是的,有时它没有意义(有时它没有意义的事实表明您将fkey放在了错误的表中:)
one:
order: one
photo_size: one
photo: one
two:
order: two
photo_size: two
photo: two