неопределенный метод `fetch_value" после простой миграции - PullRequest
0 голосов
/ 24 декабря 2018

Я выполнил миграцию в базу (в пользовательской таблице devise gem), где был удален столбец и создан новый.После этого при выводе консоли (rails c) все пользователи будут выводить:

irb(main):003:0> User.all User Load (1.0ms) SELECT "users".* FROM "users" LIMIT $1 [["LIMIT", 11]] (Object doesn't support #inspect) =>

Если ввести User.first, например:

irb(main):004:0> User.first User Load (0.7ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT $1 [["LIMIT", 1]] Traceback (most recent call last):1: from (irb):4 NoMethodError (undefined method fetch_value 'для nil: NilClass)] `

Само приложение упало, пишет в консоли проблему:

  `undefined method 'fetch_value' for nil: NilClass`

В Извлеченном источнике пишет эту проблему в: <% if user_signed_in? %>

код миграции

class RechangeFlagsToClass < ActiveRecord::Migration[5.1] def change remove_column :users, :flags add_column :users, :class, :integer, default: 5 end end

1 Ответ

0 голосов
/ 24 декабря 2018

О, это была ошибка.

class - зарезервированное слово.Вы не можете использовать это.Это объектный метод, который возвращает класс объекта, поэтому, если у вас есть User.object в переменной my_boss и вы делаете my_boss.class, вы увидите User возвращено.

Записать еще одну миграцию вудалите class и добавьте другой_метод class_number или что-то еще.

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