В приложении rails у меня есть ряд атрибутов для модели под названием Запись.Я хочу разработать метод, который при вызове атрибута возвращает имя атрибута (который по сути является методом объекта Record).Это имя затем передается в Hash, который возвращает число (для примера, скажем, число представляет собой процент, который затем умножается на исходное значение атрибута, чтобы получить new value
).
Например, скажем, моя запись имеет четыре атрибута: teachers
, students
, principals
и parents
.Затем метод будет выглядеть следующим образом:
def name
**something here**
end
, а соответствующий метод new_value
и хэш PRECENTAGE
будут выглядеть следующим образом:
def new_value
self * PERCENTAGE[self.name]
end
PERCENTAGE = {
"teachers" => 0.40,
"students" => 0.53,
"principals" => 0.21,
"parents" => 0.87
}
Затем выполнить все этоЯ бы сделал Record.students.new_value
, который вернул бы новое число студентов в соответствии с процентом, полученным в хэше.
Я знаю, что для получения имени метода, который выполняется в данный момент, вы можете сделать что-токак это: (найдено в http://ryat.la/7RDk)
def this_method
__method__
end
, но это не сработает для меня, потому что мне нужно имя ранее выполненного метода.
Если у вас есть какие-либо предложения относительно альтернативного подхода к достижению моей цели, я был бы рад попробовать что-то еще.