Ruby on rails 计算表单视图中的信息

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操作,因此在渲染视图之前,在控制器方法内部执行此类操作更安全。您可以在控制器中

任何建议都会有帮助。

1 参数[:年]为零,嘟嘟

您可以使用

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 %>