1

私はレールが初めてで、助けが必要な場合があります。これで数日間立ち往生しています。解決策を検索しましたが、まだわかりません。問題は、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 に答える