在我的用户模型中,我有以下代码:
def job_amount(user)
parent = Parent.where(parents: {firstname: user.firstname, name: user.name})
demands = Demand.where(parent_id: parent.pluck(:id))
demands.sum(:quantity)
end
调用这个:
<%= @user.job_amount.to_s %>
引发以下错误:
wrong number of arguments (given 0, expected 1)
任何想法为什么?
参数数量错误(给定 0,预期为 1)
这意味着该方法需要一个参数,但您传递的是零
<%= @user.job_amount(@user).to_s %>
虽然,这很糟糕
如果job_amount
是User
模型中的实例方法,您不需要@user
作为参数发送,您可以使用self
问题:job_amount(user)
方法的位置是什么?
编辑
将方法更改为此也将解决问题
def job_amount
parent = Parent.where(parents: {firstname: firstname, name: name})
demands = Demand.where(parent_id: parent.pluck(:id))
demands.sum(:quantity)
end
和
<%= @user.job_amount.to_s %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句