ActiveRecord .select(): Possible to clear old selects?

后端 未结 2 1366
不知归路
不知归路 2020-12-14 15:59

Is there a way to clear old selects in a .select(\"table.col1, ...\") statement?

Background:

I have a scope that requests accessible items for a given user i

相关标签:
2条回答
  • 2020-12-14 16:23

    Fortunately you're wrong :D, you can use the #except method to remove some parts of the query made by the relation, so if you want to remove the SELECT part just do :

    @items = Item.accessible(@auth.id).except(:select).select("polls.id, polls.title")
    
    0 讨论(0)
  • 2020-12-14 16:27

    reselect (Rails 6+)

    Rails 6 introduced a new method called reselect, which does exactly what you need, it replaces previously set select statement.

    So now, your query can be written even shorter:

    @items = Item.accessible(@auth.id).reselect("polls.id, polls.title")
    
    0 讨论(0)
提交回复
热议问题