2012-02-21 3 views
0

Я новичок в рельсах. Пока мне это нравится, но есть несколько исправлений (логика кодов, которые работают на PHP, но я не знаю, как это делается в Rails).Рельсы 3: Цепь Метод сохранения

Например:

u = User.first 
u.age +=1 
u.save 

Это работает, но если я цепь, он выдает ошибку

u = User.first 
u.age+=1.save 

ошибка брошена не определен метод 'Сохранить' для 1: Fixnum

Любая помощь приветствуется. Спасибо

ответ

1

Вы можете достичь сцепления вы ищете, как этот

u.tap { u.age += 1 }.save

хотя это не обязательно лучший способ обновить атрибут, а затем сохранить. Чтобы сделать это, я хотел бы использовать update_attribute

u.update_attribute(:age, u.age+1)

1

u.age += 1 возвращает целое число, которое не имеет метода save.

+0

да, я понял, так тоже, так что в общем, Rails действительно не поддерживает цепочки? – Henson

+0

Зависит от того, какую цепочку вам нужно. Это недействительный случай :(Что-то вроде «string» .strip.length или User.where (: age => 20) .last действительны. – wanghq

Смежные вопросы