Как добавить (увеличить) целочисленное значение, как в других языках, используя оператор ++ (увеличение) в Ruby on Rails - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь добавить к целому числу value + 1, но я не получаю 'неявного преобразования Integer в массив'

Вот мой код:

@user_id = User.limit(1).order('created_at desc').pluck(:user_id).map(&:to_i)
@user_id = @user_id + 1

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

'нет неявного преобразования Integer в массив'

Это потому, что .pluck() и .map() возвращают массив.

  • @ user_id + 1=> пытается добавить массив (@user_id) и целое число (1).
  • Поскольку 1 - это целое число, которое должно быть приведено к массиву для добавления в массив, а ruby ​​не делаетне хочу делать это неявно .
  • Отсюда и ошибка.

Почему бы и нет?

User.limit(1).order('created_at desc') вернет последнюю активную запись.Если created_at не умерен, вы можете достичь того же просто,

@user_id = User.last.user_id + 1
0 голосов
/ 06 июня 2018

.pluck и .map оба возвращают тип массива, поэтому вы пытаетесь сделать числовое дополнение к типу массива, чтобы вы могли сделать

@user_id = @user_id.first + 1

Вы можете вызвать + вмассив, но он должен находиться между двумя типами массивов, например

[1,2] + [3,4] => [1,2,3,4]

Надеюсь, это поможет.

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