我正在开发一款应用,需要从不同型号中计算两种不同的参数。我有一个Place
模型和一个User
模型。 Place
模型具有cost:float
参数,User
模型具有adult:integer
参数。当我尝试使用它们来乘以它们时:
<%= place.cost * current_user.adult %>
我得到了
undefined method `*' for nil:NilClass
这些参数都不是Nil
因为我跑的时候:
<%= place.cost %><%= current_user.adult %>
我得到两者的价值。
当然,我确信这最好是作为模型中的方法而不是在视图中完成,但我也可以弄清楚如何使其工作。
如果这两个*
操作都给我价值,为什么不会这样做?
答案 0 :(得分:1)
最有可能的是,代码:
<%= place.cost * current_user.adult %>
是循环的一部分,在您正在迭代的Place
集合中,有一个place
没有设置cost
。
答案 1 :(得分:-1)
Nil没有放置或 current_user
无需付费或成人 但是当你尝试渲染它时你没有错误
试试这个
<%= place.cost.inspect %><%= current_user.adult.inspect %>
你会看到其中一个没有。