Ruby on rails 计算表单视图中的信息
任何建议都会有帮助。1 参数[:年]为零,嘟嘟 您可以使用Ruby on rails 计算表单视图中的信息,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,任何建议都会有帮助。1 参数[:年]为零,嘟嘟 您可以使用 undefined method `*' for nil:NilClass 2. 不兼容的类型,请尝试: raise params[:Years].inspect 可能问题出在大写符号:Year。为散列赋予一个新的键,它将返回nil 如果没有参数[:year],则应使用引用的其中一个参数进行转换:#to_i、|0或甚至整数(值) 但是,由于易于params操作,因此在渲染视图之前,在控制器方法内部执行此类操作更安全。您可以在控制器中
undefined method `*' for nil:NilClass
2.
不兼容的类型,请尝试:
raise params[:Years].inspect
可能问题出在大写符号
:Year
。为散列赋予一个新的键,它将返回nil
如果没有参数[:year]
,则应使用引用的其中一个参数进行转换:#to_i
、|0
或甚至整数(值)
但是,由于易于params
操作,因此在渲染视图之前,在控制器方法内部执行此类操作更安全。您可以在控制器中设置一个变量,然后使用它
控制器
:value => ((params[:Years].to_i * 12) + params[:Months].to_i)
查看
def action
@months = (params[:years].to_i*12) + params[:months].to_i
end
@months%>
这是因为您的参数[:Years]返回零。该参数键没有值。你能保证它会一直存在吗?也许你应该把它默认为0。类似于((params[:Years]| | 0)*12)
的东西就可以了。您应该在视图中访问params[:Years]吗?
def action
@months = (params[:years].to_i*12) + params[:months].to_i
end
<%= f.hidden_field :months, :value => @months %>