我正在尝试将所有值设置为 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,但第 3 行 ( send(x)
) 给我带来了问题。对我来说似乎正确,但不起作用。x
是 Power 中列的汽车和名称。有小费吗?
<% @cars.each do |x| %>
<% @power = Power.find_by_user_id(@user) %>
<% @power.send(x) = 0 %>
<% @power.save %>
<% end %>
假设@cars
包含 的列名Power
,则需要send
setter 方法(即以 a=
结尾)。您还需要确保将符号传递给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