Ответ DanSingerman показывает, как обновить отдельное поле.
Но, если цена является чисто рассчитанным значением, это не должно быть поле в вашей таблице.Но метод в вашей модели:
class House < ActiveRecord::Base
def price
return 100 if colour == "red"
return 200
end
end
(Это, очевидно, очень упрощенный метод «расчета» цены)
Теперь вы можете использовать @house.price
, как и раньше, и это зависитпо цвету, но это больше не поле таблицы.
Примечание: Если вычисление является сложным, вы можете «кэшировать» его в переменной класса и переопределить метод colour=
для удаленияпеременная класса, когда цвет меняется.