Rails adds Rails.env.local? to determine its current environment


Most Ruby on Rails developers are aware of the importance of customizing the application’s behaviour based on the environment it is running in. Whether we’re running our application in a development environment on our local machine, or in a production environment for users, it’s important to be able to make these distinctions.

Rails has recently added a new method called Rails.env.local?, which makes it easy to determine if the current environment is the local development environment. In this blog post, we’ll explore how to use Rails.env.local? and some of the common use cases for this method. We’ll also look at how it compares to other methods for determining the current environment in Rails.

Before

Before the Rails.env.local? method was added to Rails, developers had to use other methods to determine the current environment. For example, they might have used the Rails.env method, which returns a string representation of the current environment (e.g. “development”, “production”, etc.).

To check if the current environment is the local development environment, developers would have to compare the value returned by Rails.env to the string “development”. This can be error-prone and cumbersome, especially if we have multiple environments and need to check for each one.

For example, here is what the code might look like before Rails.env.local? was added:

if Rails.env == "development"
  # raise error
else
  # rescue error with proper eresponse
end

After

Using the Rails.env.local? method can be useful in a number of situations. For example, we might want to use it to disable certain features or behaviours in the local environment that are not relevant or that might cause problems.

For example, we might want to disable email sending in the local environment, as this can be problematic if we are not actually connected to an email server. We can do this with the following code:

if Rails.env.local?
  # raise error
else
  # rescue error with proper response
end

Final Thoughts

With the addition of Rails.env.local?, the code becomes much simpler and easier to read. Overall, the Rails.env.local? method makes it easier and more reliable for developers to determine the current environment and customize their application’s behaviour accordingly.

Join Our Newsletter