2016-11-03 6 views
0

Я хочу создать метод возврата всех моих объектов для какой-либо модели. Дело в том, что, помимо сохраняющихся объектов на db, я хочу присоединиться к еще нескольким объектам, основанным на каком-то определенном состоянии. Так было бы что-то вродеRails - Временная связь ActiveRecord

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

Дело в том, что эти новые записи не сохранились бы на db. Они будут созданы «на лету», как новые записи, чтобы присоединиться к сохранившимся. Таким образом, я показал любопытные работы, я получаю массив объектов 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

Да, это то, что я думал, что ... но я хотел бы использовать, где вместо того, чтобы выбрать " потому что реализация уже была такой. Думаю, мне придется это изменить. Просто хотел получить второе мнение. Благодаря! –

Смежные вопросы