HABTMの関係には、MaintenanceOrder
とMaintenance
という2つのモデルがあります。一方HABTMの命名規則の問題
I have two models that are similar, and I'm wondering if this is the cause of the error?
@maintenance.maintenances
=> ActiveRecord::StatementInvalid: Could not find table 'maintenance_orders_maintenances'
@maintenance_order.maintenances
=> ActiveRecord::StatementInvalid: Could not find table 'maintenance_orders_maintenances'
:
create_table :maintenances_maintenance_orders, id: false do |t|
t.belongs_to :maintenance, index: true
t.belongs_to :maintenance_order, index: true
end
をその後、私はエラーが発生します。移行が参加するテーブルを作成に関して
create_table :maintenance_orders do |t|
...
end
create_table :maintenances do |t|
...
end
以下のように宣言された、私は私が持っている場合は気づいもし私が持っていれば、エラーが次のような結合テーブルを示唆するように:
create_table :maintenance_orders_maintenances, id: false do |t|
t.belongs_to :maintenance_order, index: true
t.belongs_to :maintenance, index: true
end
すべて正常に動作します。しかし、私が理解する限り、HABTMの定義によって、モデルが宣言されている順序は重要ではないので、この質問をしています。だから...名前はとても似ているので、ちょうど私がこのようにしなければならない蛇のケースがある(おそらくmaintenances_maintenance
が紛らわしい)か... ...?これに関するルールは?
デフォルトでは、Railsはテーブル名をアルファベット順に並べます。 'maintenance_order'は' maintenances'の前に来ますので、 ':maintenance_orders_maintenances'は、どのテーブルに名前が付けられるのか –