Ruby on rails 使用send方法时出现语法错误

Ruby on rails 使用send方法时出现语法错误,ruby-on-rails,ruby,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

我这里有一个很小但很愚蠢的问题,我有一个示范动作

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}”)+更改


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

我想您应该这样做:

price = price.send("#{currency}") + change
您当前的示例是无效语法,因为您试图将某个内容分配给一个值,即
price.send(“#{currency}”)
的返回值

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

这是无效的,您不能使用“=”进行分配,以防您希望使用send with setter

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

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

请提供您的stacktrace…您的控制器操作不能从您发布的self开始here@GhostRider,我做了一个编辑,它是model actionprice.send(“#{currency}=”,price.send(currency)+change)