使用send方法的语法错误

时间:2014-02-09 09:42:08

标签: ruby-on-rails ruby

我这里有一个小而愚蠢的问题,我有模特行动;

def self.price_change_up(network, currency, change )
    prices = Prices.where('network = ?', network) 
    prices.each do |price|
      price.send("#{currency}") = price.send("#{currency}") + change
      price.save
    end
  end

但行

  

price.send(“#{currency}”)= price.send(“#{currency}”)+更改

返回语法错误。可能是什么问题。

2 个答案:

答案 0 :(得分:1)

我想你想要这样做:

price = price.send("#{currency}") + change

您当前的示例是无效的语法,因为您正在尝试分配给price.send("#{currency}")的返回值可能是什么。

答案 1 :(得分:1)

  

price.send(“#{currency}”)= price.send(“#{currency}”)+更改

这是无效的,你不能使用'='来分配,如果你想使用发送与setter

 self.send("#{currency}=", prev_curr_value)

在LHS中,您使用的是price.send(“#{currency}”),它会动态调用一个方法,并返回一个值,该值再次被分配给相同的值,但有一些看起来很奇怪的添加更改。你想在这里实现什么,用更新的qsn来解释。