Архивирование всего сайта Rails - PullRequest
1 голос
/ 13 мая 2010

У меня есть сайт Ruby on Rails, который был нужен только в течение короткого периода времени, в течение которого пользователи добавляли различные объекты в базу данных mySQL, комментировали их, ассоциировали себя с ними и т. Д. И т. Д. И т. Д.

Вопрос заключается в следующем: сайт больше не нужен, пока через неделю в это время не произойдет очистка базы данных и использование ее снова (с нуля). Каков наилучший способ архивирования текущего сайта, чтобы существующий контент все еще можно было просмотреть, но новый контент не может быть добавлен? Лучше всего я имею в виду метод, при котором будет использоваться наименьшее количество системных ресурсов, сервер будет самым безопасным и т. Д.

Есть предложения?

Ответы [ 5 ]

2 голосов
/ 13 мая 2010

Если вы написали приложение стандартным способом, то есть все изменения выполняются с помощью действий create, update или destroy в ваших контроллерах, добавьте before_filter к вашему ApplicationController, который запретит доступ эти методы (и, вероятно, new и edit тоже).

Возможно, вы также захотите проверить свой routes.rb, чтобы узнать, нет ли у вас других действий, которые изменяют ваши ресурсы, и добавить их в ваш фильтр тоже.

1 голос
/ 13 мая 2010

Используйте веб-сканер и оставьте его в виде статического HTML.

0 голосов
/ 13 мая 2010

Почему бы просто не удалить права на создание, вставку и удаление пользователя базы данных?

0 голосов
/ 13 мая 2010

Если представления не являются общими для редактирования и просмотра данных, вы можете разделить их с помощью разных контроллеров, один для простого просмотра, другой для операций CRUD. Тогда нужно включить и отключить второй, возможно, используя маршрутизацию.

0 голосов
/ 13 мая 2010

Зависит от того, насколько сложны ассоциации в вашей БД. Если это очень просто, вы можете написать простой php сайт, который показывает только содержимое вашей базы данных (или, может быть, есть что-то, что делает это). Это самое дешевое решение (из-за ресурсов памяти и процессора), но для достижения этой цели может потребоваться некоторая работа.

Если вы не хотите работать с вашим приложением, возможно, самый быстрый способ (в зависимости от вашего времени) - использовать подход @szeryf. Просто добавьте во все маршруты :only => [:show, :index].

...