2016-11-03 11 views
0

私はいくつかのモデルのすべてのオブジェクトの返却のためのメソッドを作成したいと思います。問題は、dbの永続オブジェクトよりも、ある条件に基づいていくつかのオブジェクトを結合したいということです。だから、Rails - 一時的なActiveRecordの関係

MyModel.all + [some_array].map{|a| MyModel.new(attribute: a)} 

ようなものになるだろう事は次のとおりです。これらの新しいレコードがデシベルで永続化されません。永続的なものに参加するための新しい記録として、それらはオンザフライで作成されるでしょう。そのように私はちょっとした作品を見せて、私はMyModelのオブジェクトの配列を取得しますが、それはActiveRecordの関係ではないので、そのレコードセットでwhereを実行することはできません。

回避策の候補はありますか?

答えて

1

あなたはそのレコードセットのどこにいますか?そのコードの最後には、MyModelオブジェクトの配列が必要です。一部は永続化され、一部は永続化されません。これらのオブジェクトのサブセットをさらに取得する必要がある場合は、選択などの任意のEnumerableメソッドを使用することができます。

myarray = MyModel.all + [some_array].map{|a| MyModel.new(attribute: a)} 
#as opposed to myarray.where(attribute: 'key') 
myarray.select {|obj| obj.attribute == 'key' } 
+0

ええ、それは私が思ったものです...しかし、その実装はすでにそれのようでした。私はそれを変更する必要がありますね。ちょうど第二の意見が欲しい。ありがとう! –

関連する問題