0

我正在尝试将所有值设置为 0,但第 3 行 ( send(x)) 给我带来了问题。对我来说似乎正确,但不起作用。x是 Power 中列的汽车和名称。有小费吗?

<% @cars.each do |x| %>
  <% @power = Power.find_by_user_id(@user) %>
  <% @power.send(x) = 0 %>
  <% @power.save %>
<% end %>
4

1 回答 1

2

假设@cars包含 的列名Power,则需要sendsetter 方法(即以 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
于 2012-09-09T16:53:59.360 回答