1
<%= f.label :months, "Experience" %>
<%= f.hidden_field :months, :value => (params[:Years]*12) + params[:Months] %>
<%= number_field_tag "Years", nil, placeholder:"Years" %> Years <%= number_field_tag "Months", nil, placeholder:"Months" %> Months

上記のように; 必要な情報を計算して渡したいと思います。現在、*メソッドでエラーが発生しました:

undefined method `*' for nil:NilClass

どんなアドバイスも役に立ちます。

4

2 に答える 2

2

おそらく大文字の記号:Yearが問題です。ハッシュに新しいキーを与えると、 が返されnilます。

ない場合params[:year]は、引用された:のいずれか#to_i|| 0または elseで変換を行う必要がありますInteger(value)

ただし、この種の操作は、簡単にparams操作できるため、ビューをレンダリングする前にコントローラー メソッド内で行う方が安全です。コントローラーで変数を設定してから使用できます。

コントローラ

def action
  @months = (params[:years].to_i*12) + params[:months].to_i
end

意見

<%= f.hidden_field :months, :value => @months %>
于 2013-01-03T15:12:20.603 に答える
0

1

params[:years] はゼロです。

あなたはでテストすることができます

raise params[:Years].inspect

2

互換性のない型、試してください:

:value => ((params[:Years].to_i * 12) + params[:Months].to_i)
于 2013-01-03T14:25:21.817 に答える