2014-02-09 2 views
0

У меня здесь крошечная, но глупая проблема, у меня есть модельное действие;Ошибка синтаксиса с использованием метода отправки

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 ("# {валюта}") = price.send ("# {валюта}") + изменить

возвращение синтаксиса ошибка. В чем может быть проблема.

+0

Введите StackTrace ... – Hardik

+0

ваши действия Контроллер не может начать с себя, как вы писали здесь – Bijendra

+0

@GhostRider, я сделал правку, это Акция Модель – Acacia

ответ

1

Я предполагаю, что вы хотите сделать это вместо:

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

Ваш текущий пример неверен синтаксис, потому что вы пытаетесь Назначают что-то значение, возвращаемое значение price.send("#{currency}") независимо может это быть ,

1

price.send ("# {валюта}") = price.send ("# {валюта}") + изменение

Это является недопустимым, вы не можете использовать '=' в назначать, в случае, если вы хотите использовать отправить с сеттер

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

в LHS, вы используете price.send («# {валюту}»), он вызывает метод динамически и возвращает значение, которое снова присваивается одному значению с некоторой сменой добавления, которая выглядит странно. что вы пытаетесь достичь здесь, объясните с помощью обновленного qsn.

+0

price.send («# {валюты} =», цена .send (валюта) + изменение) – bridiver

Смежные вопросы