Бьет меня, почему ты хочешь делать такие вещи, но:
def reload_attribute(attr)
value = self.class.where(:id=>id).select(attr).first[attr]
self[attr] = value
end
Это выдает SELECT
, который извлекает только один столбец и присваивает его значение атрибуту в текущем экземпляре модели. Звоните с (например):
post = Post.find(1)
post.reload_attribute(:body)
На самом деле, вы должны просто пойти с post.reload
( doc ). Если у вас нет очень широких столбцов, которые приводят к некоторому снижению производительности при выполнении SELECT *