Back to Blog

Rails 6 adds ActiveRecord::Relation#reselect

on April 2, 2019
This blog is part of our Rails 6 series.

Rails 6.0 was recently released.

Rails have rewhere and reorder methods to change the previously set conditions attributes to new attributes which are given as an argument to method.

Before Rails 6, if you want to change the previously set select statement attributes to new attributes, it was done as follows.

1>>, :body).unscope(:select).select(:views)
3   SELECT "posts"."views" FROM "posts" LIMIT ? ["LIMIT", 1]]

In Rails 6, ActiveRecord::Relation#reselect method is added.

The reselect method is similar to rewhere and reorder. reselect is a short-hand for unscope(:select).select(fields).

Here is how reselect method can be used.

1>>, :body).reselect(:views)
3   SELECT "posts"."views" FROM "posts" LIMIT ? ["LIMIT", 1]]

Check out the pull request for more details on this.

You might also like

If you liked this blog post, check out similar ones from BigBinary