We write about Ruby on Rails, React.js, React Native, remote work, open source, engineering and design.
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>> Post.select(:title, :body).unscope(:select).select(:views)
2
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>> Post.select(:title, :body).reselect(:views)
2
3 SELECT "posts"."views" FROM "posts" LIMIT ? ["LIMIT", 1]]
Check out the pull request for more details on this.