Ruby on rails Rails:如何将for循环的结果保存到数据库中

Ruby on rails Rails:如何将for循环的结果保存到数据库中,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我是rails新手,需要一些帮助。我被困在这几天了。我已经找到了解决方案,但仍然没有找到。问题是我想将for循环的结果保存到数据库postgreSQL中 <% @amount = (params[:h].to_d * params[:k].to_d) %> <% @percent = (params[:h].to_d * params[:k].to_d) / params[:p].to_d %> <% for i in 0..params[:a].

我是rails新手,需要一些帮助。我被困在这几天了。我已经找到了解决方案,但仍然没有找到。问题是我想将for循环的结果保存到数据库postgreSQL中

    <% @amount = (params[:h].to_d * params[:k].to_d) %> 
    <% @percent = (params[:h].to_d * params[:k].to_d) / params[:p].to_d %>
<% for i in 0..params[:a].to_i do %>  
    <% @newAmount = ((@amount/(@percent)) + @amount) %>  
    <%= "#{i}" + " - #{@amount}" %><br />
    <% @amount=@newAmount %>
<% end %>

这就是我的表单的样子,表单_非常容易进行验证,为什么不进行验证呢

<%= form_for @calculation do |f| %>
  <% if @calculation.errors.any? %>
    <h2>Errors:</h2>
    <ul>
      <% @calculation.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
    </ul>
  <% end %>
  A n: <%= f.text_field :a_n %><br />
  H: <%= f.text_field :h %><br />
  K: <%= f.text_field :k %><br />
  P: <%= f.text_field :p %><br />
  A: <%= f.text_field :a %><br />
  <%= f.submit 'CALC' %>
<% end %>  
而展示视图是:

<p>A n: <%= @calculation.a_n %></p>
<p>H: <%= @calculation.h %></p>
<p>K: <%= @calculation.k %></p>
<p>P: <%= @calculation.p %></p>
<p>A: <%= @calculation.a %></p>
<small>T: <%= @calculation.created_at %></small>
 <br />
    <%= @calculation.a_n %> <br />
    <% @amount = (@calculation.h * @calculation.k) %> 
    <% @percent = (@calculation.h * @calculation.k) / @calculation.p %> 
  <% for i in 0..@calculation.a do %> 
    <% @newAmount = ((@amount/(@percent)) + @amount) %>
    <%= "#{i}" + " - #{@amount}" %><br />
    <% @amount=@newAmount %>
  <% end %>

这很好用!感谢您的关注和帮助

你能详细说明你到底想保存什么吗。表/模型结构是什么。为模型提供一些代码。编辑帖子。我想保存循环年的结果和每年的数字,但如果可能的话,我想保存我输入到表单中的数据,这样我就可以看到结果的来源。好的。。我可以看到表单中除y以外的所有参数,而在表中看到另一个名为a的列。这是打字错误吗?如果不是,那么你想在该栏中存储什么?for循环的数据将存储在哪里?没问题。尽管还需要更多的信息。您正在视图中使用for循环,它是否与表单所在的视图相同。你从哪里看到了params[:a]。for循环还有一件事是在@amount中添加值。你想保存@amount的最终值吗?如果是的话,那么我指的是在你表格的哪一列。这是打字错误,对不起。我希望for循环的数据也像表单一样存储在db中,但是对于for循环的数据,我必须为I和amount创建新的数据库?首先,我非常感谢你在这方面对我的帮助。它与表单所在的视图相同。params[:a]是我输入的参数。我想保存amount的所有值,就像我输入参数[:a]作为值5一样,然后我得到0-amount,1-amount…逻辑不应该在视图中,而是将它们移动到帮助器或模型方法。
  create_table "calculation", :force => true do |t|

    t.string   "a_n"

    t.decimal  "h"

    t.decimal  "k"

    t.decimal  "p"

    t.integer  "a"

    t.datetime "created_at",  :null => false

    t.datetime "updated_at",  :null => false

  end
<%= form_for @calculation do |f| %>
  <% if @calculation.errors.any? %>
    <h2>Errors:</h2>
    <ul>
      <% @calculation.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
    </ul>
  <% end %>
  A n: <%= f.text_field :a_n %><br />
  H: <%= f.text_field :h %><br />
  K: <%= f.text_field :k %><br />
  P: <%= f.text_field :p %><br />
  A: <%= f.text_field :a %><br />
  <%= f.submit 'CALC' %>
<% end %>  
<p>A n: <%= @calculation.a_n %></p>
<p>H: <%= @calculation.h %></p>
<p>K: <%= @calculation.k %></p>
<p>P: <%= @calculation.p %></p>
<p>A: <%= @calculation.a %></p>
<small>T: <%= @calculation.created_at %></small>
 <br />
    <%= @calculation.a_n %> <br />
    <% @amount = (@calculation.h * @calculation.k) %> 
    <% @percent = (@calculation.h * @calculation.k) / @calculation.p %> 
  <% for i in 0..@calculation.a do %> 
    <% @newAmount = ((@amount/(@percent)) + @amount) %>
    <%= "#{i}" + " - #{@amount}" %><br />
    <% @amount=@newAmount %>
  <% end %>