Используйте public_send
, если вы хотите динамически вывести имя метода и вызвать его, но при этом все еще не хотите иметь проблемы с инкапсуляцией.
user = User.first
user.public_send(:first_name=, 'Ray')
Возможно, send
также будет работать в приведенном выше кодено не рекомендуется в большинстве случаев.
User.first.public_send(:first_name=, 'Ray')
будет бесполезным, так как вы присваиваете значение User
объекту, и этот метод установки не сохраняет значение.
Ваш объект не сохраняется ни в одной ссылкетаким образом, вы потеряете объект, для которого вы выполнили операцию setter
для first_name
.
Возьмите его в переменную, например user , а затем выполните такие операции, чтобы вы могли отслеживать, так позжеВы можете сохранить объект user , а также посмотреть, какие изменения вы внесли в эту переменную