<%= 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
任何建议都会有所帮助。
答案 0 :(得分:2)
可能是大写符号:Year
是问题所在。为哈希提供一个新密钥,它将返回nil
。
如果没有params[:year]
,您应该使用引用的#to_i
,|| 0
或其他Integer(value)
进行转换。
然而,在渲染视图之前,这种操作在控制器方法内更安全,因为params
操作很容易。您可以在控制器中设置变量,然后使用它。
<强>控制器强>
def action
@months = (params[:years].to_i*12) + params[:months].to_i
end
查看强>
<%= f.hidden_field :months, :value => @months %>
答案 1 :(得分:0)
你可以用
进行测试raise params[:Years].inspect
不兼容的类型,请尝试:
:value => ((params[:Years].to_i * 12) + params[:Months].to_i)