Ruby on rails 如何在另一个MVC中使用表单数据?

Ruby on rails 如何在另一个MVC中使用表单数据?,ruby-on-rails,Ruby On Rails,我刚刚开始学习rails和ruby,但已经被卡住了 我已经创建了一个模型、一个视图文件和一个控制器,其表单允许用户输入一些数据。现在我正在开发另一个MVC,它使用这些数据进行各种计算并返回结果。我的问题是:我根本不明白如何将用户输入的数据输入到进行计算的模型中。我知道这是一个非常初级的问题,但看起来我无法独自解决它 条目模型:entry.rb class Entry include ActiveModel::Model attr_accessor :icao, :string

我刚刚开始学习rails和ruby,但已经被卡住了

我已经创建了一个模型、一个视图文件和一个控制器,其表单允许用户输入一些数据。现在我正在开发另一个MVC,它使用这些数据进行各种计算并返回结果。我的问题是:我根本不明白如何将用户输入的数据输入到进行计算的模型中。我知道这是一个非常初级的问题,但看起来我无法独自解决它

条目模型:entry.rb

class Entry
    include ActiveModel::Model
    attr_accessor :icao, :string
    attr_accessor :elevation, :integer
    attr_accessor :qnh, :integer
    attr_accessor :temperatur, :integer
    attr_accessor :winddirection, :integer
    attr_accessor :windspeed, :integer
    attr_accessor :basedistance, :integer
    validates_presence_of :icao
    validates_presence_of :elevation
    validates_presence_of :qnh
    validates_presence_of :temperatur
    validates_presence_of :winddirection
    validates_presence_of :windspeed
    validates_presence_of :basedistance
end
条目视图:new.html.erb

<% content_for :title do %>Flytical<% end %>
<h3>Airfield Conditions</h3>
<div class="form">
  <%= simple_form_for @entry do |form| %>
    <%= form.error_notification %>
    <%= form.input :icao, label: 'Airfield ICAO', input_html: { maxlength: 4 }, autofocus: true%> 
    <%= form.input :elevation, label: 'Airfield Elevation', input_html: { maxlength: 4 }%> 
    <%= form.input :qnh, label: 'QNH', input_html: { maxlength: 4 }%> 
    <%= form.input :temperatur, label: 'Temperatur', input_html: { maxlength: 3 }%> 
    <%= form.input :winddirection, label: 'Wind Direction', input_html: { maxlength: 3 }%> 
    <%= form.input :windspeed, label: 'Wind Speed', input_html: { maxlength: 3 }%> 
    <%= form.input :basedistance, label: 'Base Takeoff Distance at MSL', input_html: { maxlength: 4 }%> 
    <%= form.button :submit, 'Submit', class: 'submit' %>
  <% end %>
</div>
<% content_for :title do %>Flytical<% end %>
<h3>Results</h3>
<p> Test result <%= @densalt %> </p>

老实说,我觉得我遗漏了一些基本但重要的要点——我希望我能通过这个项目来学习。

为什么你需要另一个MVC来完成这个项目?你说的另一个MVC是什么意思?你可能会发现它是一个有用的教程。它演示了这种逻辑——构建模型、保存数据等等。谢谢大家!我想,如果我将表单输入与模型、视图和控制器文件中的计算分离,可能会安排得更清楚。你愿意推荐在同一个地方同时做这两件事吗?
class Calc
    include ActiveModel::Model
    def pressalt
        if @entry.qnh < 1013
            pressalt = @entry.elevation + (1013 - @entry.qnh) * 30
        else
            pressalt = @entry.elevation
        end
    end
    def densalt
        if @entry.temperatur > 15
            densalt = pressalt + (((120 * ((@entry.temperatur - (15 - @entry.elevation * 2 /1000)))  
        else
            densalt = pressalt
        end
    end
end
<% content_for :title do %>Flytical<% end %>
<h3>Results</h3>
<p> Test result <%= @densalt %> </p>
class CalcsController < ApplicationController

  def create
    @calc = Calc.new
    end
end
Rails.application.routes.draw do
  resources :entries, only: [:new, :create]
  resources :calcs, only: [:new, :create]
  root to: 'visitors#new'
end