私は複雑なPostgreSQL文字列をArelに翻訳しており、has_and_belongs_to_many
テーブルを正しく整形する方法を知りたいと思います。例えば、ここに関連したモデルは、次のとおりです。has_and_belongs_to_manyテーブルをArelに変換する正しい方法は何ですか?
class Release < ApplicationRecord
has_and_belongs_to_many :vulnerabilities
end
class Vulnerability < ApplicationRecord
has_and_belongs_to_many :releases
end
クラスの設定は表を作成しますreleases_vulnerabilities
と呼ばれるが、私はARELに変換するように見えることはできません。私は自分のレールコンソールRelease_Vulnerability.arel_table
を試してみたのですが、Arel::Table.new(:releases_vulnerabilities)
を試しましたが、2番目の実装では関連する外部キーを照会することができません。このテーブルをarelに変換する正しい方法は何ですか?
なぜhas_many:releases、through:assembly_parts'を使ってみませんか?実際にAssemblyPartモデルを作成しないのに十分な理由はありますか?それは簡単にすべてをarelにすることを可能にします。また、なぜあなたはこの場合にあなたが必要と思いますか? – radha
「2番目の実装では、関連する外部キーをクエリできません」という意味はどうですか? – chumakoff
なぜあなたは最初にそれを「エイリアス化」したいのですか? Arelは本当に不安定なプライベートAPIであり、Railsのアップグレードで予告なしに変更されます。 – Iceman