В моей модели Rails У меня есть description
метод:Рубин на Rails - Имя методы Идентичного метод ActiveRecord
def description
if self.channels.nil?
return self.allowed_ip_addresses
else
return self.channels.to_s + ' channels - ' + self.allowed_ip_addresses
end
end
У меня есть довольно много моделей, где я создал description
метод, который возвращает некоторую полезную информацию, основанную на другие свойства этой модели.
Проблема, которую я только что понял, состоит в том, что в этой модели есть столбец description
, поэтому я просто задавался вопросом, как наилучшим образом решить эту проблему, я огляделся, но не нашел ничего полезного.
Первое, о чем я думал, это передать аргумент при вызове description
, например.
def description(table_value = 0)
if table_value
return self.description
end
if self.channels.nil?
return self.allowed_ip_addresses
else
return self.channels.to_s + ' channels - ' + self.allowed_ip_addresses
end
end
, но вскоре понял, что это бессмысленно, так как это будет просто вызвать метод description
рекурсивно и умереть (при условии 1
передается с вызовом description
).
Я также могу изменить имя столбца таблицы, но он используется в другом месте, поэтому я просто пытаюсь посмотреть, есть ли альтернативное решение.
Используйте метод read_attribute из модели, чтобы заставить его получить метод БД. Вы также можете использовать 'super'. – mjnissim