динамический метод ruby, передающий значение - PullRequest
2 голосов
/ 23 июня 2010

Как передать значение в имя динамического метода, который вызывается в модели rails?

@model.send(dynamic_method_name.to_sym,123)

Это дает ошибку:

 wrong number of arguments (1 for 0)

Если бы я использовал такой же метод, как этот:

 @model.post_id = 123

тогда это работает.

Таким образом, существует метод "setter" для метода post_id (и, следовательно, динамического имени метода).

Как передать значение этому установщику, когда метод является динамическим?

спасибо!

1 Ответ

8 голосов
/ 23 июня 2010

Вам необходимо добавить "=" к вашему динамическому методу_имени.В ruby ​​:post_id - имя получателя, а :post_id= - имя установщика..to_sym не является строго необходимым, поэтому вы можете сделать это:

@model.send("#{dynamic_method_name}=", 123)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...