Почему я должен добавить .to_i для Postgresql, чтобы знать, что это поле является целым числом? - PullRequest
0 голосов
/ 26 сентября 2010

Следующая строка отлично работает в MySQL, но в Postgresql я получаю сообщение об ошибке Rails, в котором говорится: «Не удается преобразовать Fixnum в строку».

viewable.update_attribute(:total_views, viewable.total_views.to_i + 1)

total_views - это целочисленное поле

Разве Rails не должен знать, что total_views является целым числом, даже если я использую Postgresql?

Ответы [ 2 ]

1 голос
/ 26 сентября 2010

Короткий ответ - «да». Rails должен знать, как десериализовать этот столбец как целое число. Какую версию Rails и какой адаптер Postgres вы используете?

В качестве бонуса, однако, вы можете сделать следующее, чтобы выполнить то, что вы хотите:

viewable.increment(:total_views)
0 голосов
/ 26 сентября 2010

Я не уверен, что у вас возникнет та же проблема с методом

update_attributes

.Так как метод

update_attribute

пропускает валидации Rails. Попробуйте использовать первый, и вы можете получить лучшее представление о том, что происходит за кулисами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...