は、どのように私はRailsのモデルインスタンスの配列にActiveRecord_AssociationRelation
を変換することができますか?代わりに、インスタンスの配列を返す方法はありどのようにActiveRecordの中に配列にActiveRecord_AssociationRelationを変換するには?
class Like < ApplicationRecord
belongs_to :likee, class_name: 'User', foreign_key: 'likee_id'
belongs_to :liker, class_name: 'User', foreign_key: 'liker_id'
after_save :mutual_like?
private
def mutual_like?
if liker.likes.where(likee: liker) // returns collection proxy but I want to return an array of model instances so that I can create another model
end
end
end
:
私はこのようなafter_save
フックにあるコードがありますか?
参照表:
create_table "likes", force: :cascade do |t|
t.integer "liker_id", null: false
t.integer "likee_id", null: false
...
end
私はこの問題は、Railsがlikee_id/liker_idの外部キーに基づいてモデルを関連付けていないことであると信じています。
liker.likes.where(likee:liker)があれば、この '' bool値を返し、それは私も 'liker.likesを保存した'収集proxy' –
を返すことができません。ここで、(likee:liker) '変数にして、コレクションプロキシ – user3162553
は、ARを得るために、いくつかのロード方法を使用しています:' liker.likes.where(likee:liker)は –