In Rails,
try()
lets you call methods on an object without having to worry about the possibility of that object being nil
and thus raising an exception. Let’s look at some very simple code from a Rails view.Before
Here’s a simple example of code you might replace with
try()
. Say you’ve got a Product
model in your project. A Product
may or may not have a known manufacturer, and some links you only want to display if a user is logged in and has administrator rights: <!-- products/show.html.erb (before) -->
<h1><%= @product.name %></h1>
<% unless @product.manufacturer.nil? %>
<%= @product.manufacturer.name %>
<% end %>
<% if current_user && current_user.is_admin? %>
<%= link_to 'Edit', edit_product_path(@product) %>
<% end %>
try()
can help us in a couple of places here: