デバイス、アクション、アクションタイプの3つのテーブルがあります。ActionTypesはルックアップテーブルであり、名前とIDに他なりません。関係は次のとおりです。
端末
has_many :actions
has_many :action_types, :through => :actions
has_many :tasks
アクション
belongs_to :device
has_one :action_type
ActionType
has_many :actions
has_many :devices, :through => :actions
私はRailsを初めて使用するので、これらの関係は正しくないと感じています。私の目標は、@ device.action_typesのようなものを使用できるようにすることです。これは、ほとんどの場合に実行されますが、これは、その場合に生成されるSQLです。 :
SELECT "action_types".* FROM "action_types" INNER JOIN "actions" ON "action_types"."action_id" = "actions"."id" WHERE "actions"."device_id" = 1
これは、代わりにaction_types.id=actions.action_type_idで結合する必要があることを除いて完璧です。actiontypes.action_idはありません(そしてあるべきではありません)、そして私はARが私の関係のためにそれを探していることを理解しています...私はどの部分が間違っているのかわかりません!