Я пытаюсь собрать ряд классов, которые могут использовать ActiveRecord для динамического создания и выполнения сложных запросов. Я чувствую себя очень комфортно со всей практикой:
MyModel.select("id, name, floober").join(:creator).where(:is_active => true)
То, с чем я борюсь, использует эти вещи для создания запроса без возможности определить, сколько будет каждого возможного метода (количество объединений, число или где клаузулы, лимит, группа и т.д.), досрочно. У меня может быть 2 соединения, или нет объединений в зависимости от того, откуда он звонил.
В связи с тем, как я получаю эти вещи - список объединений, список столбцов, список предложений и т.д., я могу слепо соединить их вместе. Я должен объединить столбцы вместе, упорядочить соединения, связать предложения where, чтобы я не мог перебирать различные списки.
Я пытаюсь избежать записи какого-либо необработанного SQL.
Одна вещь, которую я пробовал, заключалась в том, чтобы создать рубиновое выражение как строку, а затем уклониться от нее в конце, и когда я закончил, я почувствовал себя грязным, как будто мне нужна ванна. Я ищу способ кэшировать состояние моего запроса до тех пор, пока все части не будут накоплены, а затем выполните их.
Я бродил "с рельсов"?
спасибо заранее...