すべての値を 0 に設定しようとしていますが、3 行目 ( send(x)) で問題が発生しています。私には正しいようですが、うまくいきません。xPower の列の車と名前です。任意のヒント?
<% @cars.each do |x| %>
<% @power = Power.find_by_user_id(@user) %>
<% @power.send(x) = 0 %>
<% @power.save %>
<% end %>
すべての値を 0 に設定しようとしていますが、3 行目 ( send(x)) で問題が発生しています。私には正しいようですが、うまくいきません。xPower の列の車と名前です。任意のヒント?
<% @cars.each do |x| %>
<% @power = Power.find_by_user_id(@user) %>
<% @power.send(x) = 0 %>
<% @power.save %>
<% end %>
@carsの列名が含まれていると仮定すると、setter メソッド (つまり、最後に an を使用)Powerが必要です。また、シンボルを に渡していることを確認する必要があります。send=send
@cars.each do |x|
@power = Power.find_by_user_id(@user)
@power.send(:"#{x}=", 0)
@power.save
end
ループで設定または保存する必要がある明確な理由もないため、次@powerのようにする方がよい場合があります。
@power = Power.find_by_user_id(@user)
@cars.each do |x|
@power.send(:"#{x}=", 0)
end
@power.save