How to fix Rails's warning messages with Ruby 2.7.0 How to fix Rails's warning messages with Ruby 2.7.0 ruby ruby

How to fix Rails's warning messages with Ruby 2.7.0


To suppress warnings like:

warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call

For now, simply prefix/pass the RUBYOPT environment variable to your rails commands:

RUBYOPT='-W:no-deprecated -W:no-experimental' rails server
or
RUBYOPT='-W:no-deprecated -W:no-experimental' rails db:migrate

This may not work with earlier versions of ruby.

For backward compatibility with earlier versions of ruby prefix it with RUBYOPT='-W0' instead.

example:

RUBYOPT='-W0' bundle exec rspec

If you don't want to prefix this each time you run a command, then simply add this to the last line of your .zshrc or .bashrc (whatever you're using):

export RUBYOPT='-W:no-deprecated -W:no-experimental'
or
export RUBYOPT='-W0'

Also see last point of the notes here:
https://rubyreferences.github.io/rubychanges/2.7.html#warning-and-


Update to Rails 6.0.3, they fixed the warnings.

If you still get warnings, it's other libraries (see if there are fixed versions or submit a patch) or your own code (how to fix it).


Obviously it will take some time to for ruby team to remove all this warning in next ruby version. For now the command in your terminal

`RUBYOPT='-W:no-deprecated' rails s` 

on my basic, plain new rails 6.0.2.1 && ruby 2.7.0 project remove these two warnings lines above in a question.

Also, with command

RUBYOPT='-W:no-experimental' rails s

you will hide warnings about experimental features.

You can combine these two in one command like:

RUBYOPT='-W:no-deprecated -W:no-experimental' rails s

However, I tried these commands inside my old project built with rails 5.2 and ruby 2.6.4 later upgraded to rails 6.0.1 and they didn't worked well on for all warnings messages I got from different rails Active* modules and ruby gems.

Probably we will need some time for upgrading code and gems for new latest stuff.