undefined метод `friendly 'получает ошибку от контроллера - PullRequest
0 голосов
/ 12 января 2019

У меня есть работа над проектом с ruby ​​на рельсах, и я хочу использовать гем friendly_id. Когда я устанавливаю gem friendly_id в свой проект, добавляю следующий код в соответствии с инструкциями.

Контроллер:

def show
    @group = Group.friendly.find(params[:id])
end

Модель:

extend FriendlyId
friendly_id :title, use: [:slugged]

Я использую рельсы версии 3.2.11, а гем friendly_id - 4.0.0

Получение ошибки в контроллере. я не понимаю, почему это происходит.

ошибка:

undefined method `slug' for #<Group:0x000000092ac228>

Обновление

Предыдущая проблема решена с перезапуском сервера и переносом базы данных.

но генерирует новый выпуск Couldn't find group with id=new-demo-group

1 Ответ

0 голосов
/ 12 января 2019

Похоже, вам нужно обновить уже созданные записи, в вашем случае это будет (групповая модель), как сказано в документации:

Если вы добавляете FriendlyId в существующее приложение и вам нужно сгенерировать slugs для существующих пользователей, сделайте это с консоли, бегуна или добавьте Рейк-задание:

Group.find_each(&:save)

Рельсы консольные

Открыть терминал в корне приложения и запустить (-e это среда)

rails console -e production

Вы должны получить аналогичный вывод для этого (я добавил команду для запуска):

Running via Spring preloader in process 5389
Loading production environment (Rails 5.1.5)
2.5.1 :001 > Group.find_each(&:save)

Рельс бегун

Открыть терминал в корне приложения и запустить (-e это среда)

rails runner -e production "Group.find_each(&:save)"
...