rails/mongoidを使用して私のモデルの動的クラスを作成します。レコードにアクセスするたびに、関連する特定のレコード(belongs_to、has_one)を自動的にインクルードする必要があります。したがって、これらの関連付けをすべてas_json関数に含める必要があります。関連のリレーションシップを取得
メソッド 'associations'を使用すると、関連するすべてのモデルが表示されますが、含める結合のタイプのみをフィルタリングする必要があります(has_manyアソシエーションを含めると、時間がかかるデータベースリクエストが発生します。データ)。関連付けメソッドの出力をフィルタリングして、必要な関連付けのみを取得するにはどうすればよいですか?
私はすべての関連付けをループしようとした:
協会: エンティティ {:
def as_json(options={})
selected_associations=[]
associations.each do |ass|
puts "Association:: ", ass, ass=>relation
if association=='Belongs_To' # Need the right instruction here
selected_associations.push(ass)
end
end
attrs = super(:include => selected_associations)
end
プットがコンソールに出力次の各関連付けのために私を提供し(エンティティは一つのモデルである)の関係= > Mongoid ::リレーションシップ::参照::多数、:extend => nil、:inverse_class_name => "WSAEntity"、:name => "entities"、:class_name => "WSAEntity"、:validate => true}
':relation => ...'を評価するにはどうすればよいですか?属性を使用して、必要な関連付けのタイプを選択し、上記のコードを修正できます。または、すべてのフィルタリングされた関連付けを使用して配列を取得するさらに良い方法がありますか?
おかげで、 マイケル
を!これは私の期待通りに機能します!ありがとう、マイケル –