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)