Переименование контроллеров в Rails и очистка сгенерированного контента - PullRequest
12 голосов
/ 18 сентября 2008

Я следил вместе с Railscast относительно плагина restful_authentication.

Он рекомендовал выполнить команду:

скрипт / сгенерированный сеанс аутентифицированного пользователя

Что я и сделал, и все сгенерировалось "хорошо", но тогда сессии не работали бы. Проверяя сайт снова, он упоминает стандарт именования и перечисляет обновленный код, который гласил:

скрипт / генерация аутентифицированных пользовательских сессий

С множественными сессиями.

Итак, теперь у меня есть файл session_controller.rb с SessionController, но я предполагаю, что по именам стандартов он ищет SessionsController, что приводит к сбою кода с ошибкой «NameError в SessionsController # create»

Я вижу проблему, которая довольно очевидна, но я не знаю, как я могу это исправить, не восстанавливая содержимое? Есть ли способ отменить процесс генерации, чтобы очистить все изменения, внесенные генерацией?

Я попытался просто переименовать файлы в session_controller с помощью класса e SessionsController, но это не удалось.

Во время написания этого я решил свою проблему. Мне пришлось переименовать сеанс в сеансы в файле маршрутов как map.resource, переименовать каталог представления из сеанса в сеанс и обновить session_path в файле html.erb на session_path.

Итак, я решил свою проблему, но мой ответ относительно удаления сгенерированного контента все еще остается. Можно ли перерождать контент?

Ответы [ 3 ]

14 голосов
/ 18 сентября 2008

На самом деле, script/destroy работает для любого генератора - генераторы работают, читая скрипт своего рода о том, какие файлы создавать; script/destroy просто читает этот сценарий в обратном порядке и удаляет все созданные файлы, если вы передаете ему те же аргументы, которые вы передали script/generate.

Подводя итог: script/destroy authenticated user session удалил бы все сгенерированные файлы для вас, после чего вы могли бы без проблем запустить script/generate user sessions.

2 голосов
/ 18 сентября 2008

Я никогда не пробовал script/destroy, но если вы отменяете только что сделанные изменения, команда создания должна предоставить вам список добавленных файлов и внесенных изменений. Если вы используете какую-то систему контроля версий, то может помочь также запуск status / diff.

1 голос
/ 18 сентября 2008

Вы можете просто вернуться к предыдущей ревизии в Subversion и начать заново, верно? право? : -)

rails имеет script/destroy для «невырожденного» материала, но я подозреваю, что он будет работать только для того материала, с которым поставляется rails, а не для плагина спокойной аутентификации.

Я бы сказал, что вам лучше всего искать в файлах (или grep -R, если вы не используете IDE) - найдите все, что относится к вашему старому SessionController, и измените его

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