:select com :include no find
|
|
Alguém já conseguiu fazer com que o :include não ignore a opção :select? Tenho o seguinte código E me retorna a seguinte query: Vehicle Load Including Associations (0.4ms) SELECT `vehicles`.`id` AS t0_r0, ` vehicles`.`brand_id` AS t0_r1, `vehicles`.`fuel_id` AS t0_r2, `vehicles`.`name` AS t0_r3, `vehicles`.`created_at` AS t0_r4, `vehicles`.`updated_at` AS t0_r5, `brands`.`id` AS t1_r0, `brands`.`name` AS t1_r1, `brands`.`created_at` AS t1_r2, `brands`.`updated_at` AS t1_r3, `fuels`.`id` AS t2_r0, `fuels`.`name` AS t2_r1, `fuels`.`value` AS t2_r2, `fuels`.`created_at` AS t2_r3, `fuels`.`updated_at` AS t2_r4 FROM `vehicles` LEFT OUTER JOIN `brands` ON `brands`.id = `vehicles`.brand_id LEFT OUTER JOIN `fuels` ON `fuels`.id = `vehicles`.fuel_id ORDER BY vehicles.name ASC LIMIT 0, 6 Sei que posso utilizar o :joins no lugar do :include, porém o :joins ele não agrupa um objeto no outro, ou seja, eu tenho que colocar no select “vehicles.id, vehicles.name, brands.name as brand_name, fuels.name as fuel_name” e acessar através do vehicle.brand_name e vechile.fuel_name, se eu não colocar o as, o brand.name sobreescreve o vehicle.name. Tem a gem select_with_include porém a versão dela é 0.0.1 de 2007, parece estar abandonada, não gosto de utilizar libs assim. Alguém tem alguma solução? |
|
|
Cara, tem um plugin chamado scrooge, que ele arranca fora tudo que não é usado em views e ajeita o select de acordo. |
|
|
Eu vi lá que agora ele recomenda o slim_scrooge por ter menos código e ser mais rápido. Mas tipo, sobre minha pergunta, você sabe informar se existe a possibilidade de utilizar o select com include? Ou todo mundo que busca melhorar a performance utilizar o scrooge? |
|
|
Thiago: Estou usando o slim. Quanto ao uso do select, tu tem que colocar o nome correto com o “as” porque tu estaria escrevendo a parte, bem, do select do SQL. É como usar uma string para o conditions. Não tenho idéia se o ideal seria um include no teu caso. Se for só pra listar, e tu não vai precisar de nenhum outro atributo dos outros models (só um ou dois) vale o joins + select. |

