Повторное использование кода из другого приложения Rails
-
22-07-2019 - |
Вопрос
Я пытаюсь повторно использовать некоторый код из другого приложения rails, над которым я работал ранее. Я скопировал все модели / views / controller / migrations и запустил rake db: create and migrate. Теперь, когда я пытаюсь запустить приложение, начальная страница для этого представления (та, которая имеет список редактирования / удаления) загружается нормально и показывает, что существует 0 записей. Однако, когда я нажимаю «new», в коде, созданном скаффолдингом в моем другом приложении, отображается сообщение об ошибке ...
<%= link_to 'New comment', new_comment_path %>
undefined local variable or method `new_comment_path' for #<ActionView::Base:0xb67c9690>
Если я смогу повторно использовать этот код или это что-то еще, что мне нужно сделать, чтобы убедиться, что я все перенес. Я попытался использовать grep, чтобы найти, где 'new_comment_path' был определен в моем другом проекте, и я увидел, что он используется только в контексте, аналогичном тому, что указан выше. Любая помощь будет оценена.
Решение
Эта ошибка показывает, что вы пропустили маршруты. Р>
Проверьте файл conf / rout.rb в приложении, из которого вы копируете.
Скорее всего, все, что вам нужно сделать, это добавить
map.resources :comments
на ваш route.rb
И добавьте это для всех контроллеров, которые вы скопировали.
Другие советы
Если у вас есть время или вы собираетесь сделать это снова, вы можете подумать о том, чтобы повторно использовать кандидатов в плагин, или использовать функцию движков в 2.3 (или установить плагин rails_engines для более старых версий)