To Examples

Comparison of TemperatureConverter2 and TemperatureConverter3 Examples

---- Temperature2/app/views/convert/input.html.erb ------------------------------

<h1>Input Fahrenheit Temperature</h1>

<%= form_tag 'display' do %>
  <p><%= text_field_tag :name %> Name<br></p>
  <p><%= text_field_tag :cel  %> Celsius Temperature<br></p>
  <p><%= submit_tag 'Convert Temperature' %></p>
<% end %>

---- Temperature3/app/views/convert/input.html.erb ------------------------------

<h1>Input Fahrenheit Temperature</h1>

<%= form_for @convert_rec, url: convert_display_path do |f| %>
  <p><%= f.text_field :name %> Name<br></p>
  <p><%= f.text_field :cel %> Celsius Temperature<br></p>
  <p><%= f.submit 'Convert Temperature', class: 'ctrl' %></p>
<% end %>

---- Temperature2/app/controllers/convert_controller.rb -------------------------

class ConvertController < ApplicationController

  def input
  end

  def display
    @n = params[:name]
    @c = params[:cel].to_i
    @f = 9 * @c / 5 + 32

    rec = TempConvertRecord.new
    rec.name = @n
    rec.cel = @c
    rec.fahr = @f
    rec.save

    @recs = TempConvertRecord.all
  end
end

---- Temperature2/app/controllers/convert_controller.rb -------------------------

class ConvertController < ApplicationController

  def input
    @convert_rec = TempConvertRecord.new
  end

  def display
    # The following line was incorrect on 10/21
    # convert_rec = params(pass_params)

    # Here us the corrected line:
    rec = TempConvertRecord.new(pass_params)
    rec.fahr = 9 * rec.cel / 5 + 32
    rec.save

    # Get array to show on display view.
    @recs = TempConvertRecord.all
  end

private

  # Only allow permitted control values from client.
  def pass_params
    params.require(:temp_convert_record).permit(:name, :cel)
  end

end

--------------------------------------------------------------------