Создание многошагового действия создания в Rails - PullRequest
0 голосов
/ 10 февраля 2010

У меня есть часть моего приложения, которая иногда должна будет информировать пользователя о его действии, но приложение не знает о требовании информировать пользователя до тех пор, пока форма не будет отправлена ​​(что исключает Javascript).

В основном происходит то, что пользователь загружает один или несколько файлов, содержащих записи, если число записей в файлах превышает X, тогда мне нужно определить размер выборки и использовать только это количество статей, статей которые выбираются, выбираются случайным образом. Проблема, с которой я столкнулся, заключается в том, что пользователь может загружать файлы в действие create, а также в действие edit. Таким образом, ранее пользователь мог загрузить 2 файла, которые никогда не достигали числа записей больше X, и при недавнем редактировании они это сделали - и теперь нам нужно создать набор образцов.

Это не большая проблема, но поскольку они создавали статьи в прошлом, нам теперь нужно удалить НЕКОТОРЫЕ записи из предыдущих файлов, потому что мы создаем набор образцов - поэтому я должен сообщить пользователю о том, что должно произойти.

Итак, как только пользователь нажимает кнопку «Отправить», я определяю количество записей в файле, и если его значение больше XI, требуется показать сообщение, а пользователь должен нажать «Продолжить» или «Отменить» (в идеале я мог бы просто отобразить представление здесь. так что я могу предоставить красивую, стильную информацию для пользователя). Если его меньше, чем Х, мне все равно, и я просто продолжаю.

1 Ответ

2 голосов
/ 10 февраля 2010

Вы сможете проверить количество файлов после создания и перенаправить, если оно превышает X. Я предполагаю, что вы знаете, что такое current_user и что вы FileController загружаете файлы в учетную запись текущего пользователя.

def create
  @file = current_user.files.create(params[:file])
  if current_user.files.count >= X
    redirect_to :controller => "files", :action => "too_many_files"
  else
    redirect_to file_path(@file)
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...