お使いのモデルとコントローラを見て、あなたのフォームがあります。何が起こるかは、合計の新しいビューにあるフォームに記入することです。送信ボタンを押すと、コントローラーの操作を要求しますcreate
。 create
アクションではtotal_params
メソッドを呼び出すことになります。このメソッドはparams
ハッシュ(ビュー内のすべての情報を含みます)をチェックして、:total
キーの値を持っていることを確認します:cake
と:icecream
を渡すことができます(これは強力なパラメータまたはホワイトリストのパラメータを呼び出します)。private
キーワードはコントローラの外部から直接total_params
アクションにアクセスしないようにするためのものです。次にcreate
メソッドでは、each
の外観は、total_params
への呼び出しによって返されたハッシュの値を繰り返し処理し、それを変数total_valueに追加します。各ループが終了したTotal
レコードは、total
列の値がicecream
とcake
の合計であるデータベースに作成されます。これはおおよその値の格納方法です。
ビュー
#app/views/totals/new.html.erb
<%= form_for @total, url: {action: "create"} do |f| %>
<%= f.label :icecream %><br>
<%= f.number_field :icecream %>
<%= f.label :cake %><br>
<%= f.number_field :cake %>
<%= f.submit %>
コントローラ
#app/controllers/totals_controller.rb
class TotalsController << ApplicationController
def create
total_value = 0
total_params.each do |k, v|
total_value += v
end
Total.create(total: total_value)
end
private
def total_params
params.require(:total).permit(:cake, :icecream)
end
end
モデル
#app/models/total.rb
class Total << ActiveRecord::Base
end
は、あなたが同じページに結果を見たいか、後に提出し、データベースに保存されますか? ..完全なフォームを追加してください。 – Zero
はい、提出をクリックすると、データベースに合計で保存されます – Cactus
それに関連するモデルとコントローラメソッドを追加してください。 – Zero