How to show error message on rails views?

The key is that you are using a model form, a form that displays the attributes for an instance of an ActiveRecord model. The create action of the controller will take care of some validation (and you can add more validation).

Controller re-renders new View when model fails to save

Change your controller like below:

def new
  @simulation = Simulation.new
end

def create
  @simulation = Simulation.new(simulation_params)
  if @simulation.save
    redirect_to action: 'index'
  else
    render 'new'
  end
end

When the model instance fails to save (@simulation.save returns false), then the new view is re-rendered.

new View displays error messages from the model that failed to save

Then within your new view, if there exists an error, you can print them all like below.

<%= form_for @simulation, as: :simulation, url: simulations_path do |f|  %>
  <% if @simulation.errors.any? %>
    <ul>
    <% @simulation.errors.full_messages.each do |message| %>
      <li><%= message %></li>
    <% end %>
    </ul>
  <% end %>
  <div class="form-group">
    <%= f.label :Row %>
    <div class="row">
      <div class="col-sm-2">
        <%= f.text_field :row, class: 'form-control' %>
      </div>
    </div>
  </div>
<% end %>

The important part here is that you're checking whether the model instance has any errors and then printing them out:

<% if @simulation.errors.any? %>
  <%= @simulation.errors.full_messages %>
<% end %>

Do this -

 <%= form_for :simulation, url: simulations_path do |f|  %>
    <% if f.object.errors.any? %>
      <ul>
        <% if f.object.errors.each do |message| %>
          <li><%= message %></li>
        <% end %>
      </ul>
    <% end %>

   ..........
 <% end %>