Я чувствую, что есть большой шаг от того, где заканчиваются обучающие программы по Rails, и где я могу фактически использовать это, чтобы делать то, что мне нужно.Это проявляется в этом относительно простом случае:
Мне нужна страница, которая принимает входные данные и рассчитывает объем.В идеале, это будет сделано с AJAX, потому что меня всегда раздражает, когда простая страница заставляет меня перезагрузить его.
Я делал это в IRB с:
radius = 25; length = 0.15;( radius**2) * Math::PI * length *1e-3
# radius in microns, length in meters, answer in microliters
Но путаница возникает именно здесь.Я понимаю, что должен перенаправить страницу, я понимаю, что мой контроллер отвечает за направление к правильному ответу, но где должен произойти мой расчет?Как мне получить ответы на мою форму?
Кажется, я просто не понимаю, как интегрировать все эти вещи ...
Вот мое мнение (которое отображается, но из которого я, кажется, не могу передать информациюout:
<h2>Here I'll calculate the dead volume of a piece of tubing for you.</h2>
<%= form_tag url_for(:method => :get), :remote => true, :id => 'calculation_entry' do %>
<div id="internal_diameter">
<label for="diameter">Enter the internal diameter:</label>
<%= text_field_tag :diameter %>
<label for="diameter_unit"></label>
<%= select_tag :diameter_unit, options_for_select({
"Microns" => 'micrometers',
'inches' => 'inches'
}) %>
</div>
<div id="length">
<label for="length">Enter the length of tubing:</label>
<%= text_field_tag :length %>
<label for="length_unit"></label>
<%= select_tag :length_unit, options_for_select({
"meters" => 'meters',
"inches" => 'inches'
}) %>
</div>
<%= submit_tag "Calculate!" %>
<% end %>
<div class="output">
<span>The volume of the tubing parameters entered is:</span>
<%= @object %>
</div>
А вот контроллер, который я построил:
class PagesController < ApplicationController
def index
end
def dead_volume
@object = Object.new
end
def calculate
@object = params.inspect
end
end