を、私は、次の関連付けを持っている:Railsのアソシエーションは「モデル」との句「MODEL_ID」の代わりに「モデル」のSQLをトリガーする「ID」私のカードのモデルで
has_many :sub_cards, ->(obj) { where('parent_card_id = ?', obj.id) },
inverse_of: :parent_card, :class_name => 'Card'
belongs_to :parent_card, class_name: 'Card', optional: true
私はそれらを使用しようとするたびに私は私の他の作業団体を参照する場合、それは'cards'.'id' = something
でなければならないのに対し、
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'cards.card_id' in 'where clause': SELECT
cards
.* FROMcards
WHEREcards
.card_id
= 237 AND (parent_card_id = 237)
は、実際には、SQL要求は、'cards'.'card_id' = something
があります、c.sub_cards
を入力してコンソールで、たとえば、私は次のエラーを取得します。 問題は、この構文がどこから来るのかわかりません。
誰かがこの問題を経験したことがありますか?
ご協力いただきありがとうございます。
アトリビュートがアフィリエイト+ _idの名前なので、何も変更されていませんでしたが、あなたの助けに感謝します:) –
@V.Déhayeは私の答えを編集しました。と幸運の仲間! –
残念なことに、belongs_toのためには正しいですが、それはすでにそうですが、それ以外の方法では、parent_card_id属性を調べ、関連を呼び出すオブジェクトを参照するカードを見つけることによって、sub_cardsを見つける必要がありますつまり、このフィールドにアソシエーションを呼び出すオブジェクトのIDを持っています。それでも、もう一度ありがとう! –