私のユーザー モデルには、次のコードがあります。
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 が予想されます)
これは、メソッドが 1 つの引数を期待しているが、ゼロを渡していることを意味します。
<%= @user.job_amount(@user).to_s %>
しかし、これは非常に悪いです
場合job_amount
で、インスタンスメソッドであるUser
あなたが送信する必要がないモデル@user
のparamとして、あなたはを利用することができます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]
コメントを追加