如何在Rails中乘以不同模型的参数

时间:2015-03-28 20:15:47

标签: ruby-on-rails ruby

我正在开发一款应用,需要从不同型号中计算两种不同的参数。我有一个Place模型和一个User模型。 Place模型具有cost:float参数,User模型具有adult:integer参数。当我尝试使用它们来乘以它们时:

<%= place.cost * current_user.adult %> 

我得到了

undefined method `*' for nil:NilClass 

这些参数都不是Nil因为我跑的时候:

<%= place.cost %><%= current_user.adult %> 

我得到两者的价值。

当然,我确信这最好是作为模型中的方法而不是在视图中完成,但我也可以弄清楚如何使其工作。

如果这两个*操作都给我价值,为什么不会这样做?

2 个答案:

答案 0 :(得分:1)

最有可能的是,代码:

<%= place.cost * current_user.adult %>

是循环的一部分,在您正在迭代的Place集合中,有一个place没有设置cost

答案 1 :(得分:-1)

Nil没有放置 current_user

无需付费或成人 但是当你尝试渲染它时你没有错误

试试这个

<%= place.cost.inspect %><%= current_user.adult.inspect %>

你会看到其中一个没有。