1

我是 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_tag不太好保存数据,但我真的不知道如何使用form_for来做到这一点。

<%= form_tag ('/calc') do  %> 
  A_n: <%= text_field_tag :a_n %><br />
  H: <%= text_field_tag :h %><br />
  K: <%= text_field_tag :k %><br />
  P: <%= text_field_tag :p %><br />
  A: <%= text_field_tag :a %><br />
  <%= submit_tag 'Calc' %>
<% end %>

如果这是基本的或非常简单的(我敢肯定),我很抱歉,但我希望我能找到一些帮助来正确地做到这一点。

模型:

class Calculation < ActiveRecord::Base
  attr_accessible :a, :a_n, :h, :k, :p
end

桌子:

  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
4

1 回答 1

-1

这就是我的表单的样子,使用 form_for 很容易进行验证,那么为什么不进行验证呢?

<%= 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 %>

这完美!感谢您的关注和帮助!

于 2013-02-06T18:41:32.743 回答