我正在尝试将所有值设置为0,但第3行(send(x)
)给我带来了问题。似乎对我而言,但不起作用。 x
是Power中列的汽车和名称。有什么提示吗?
<% @cars.each do |x| %>
<% @power = Power.find_by_user_id(@user) %>
<% @power.send(x) = 0 %>
<% @power.save %>
<% end %>
答案 0 :(得分:2)
假设@cars
包含Power
的列名,则需要send
setter方法(即最后使用=
)。您还需要确保将符号传递给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