在Rails中创建多步创建操作

时间:2010-02-10 05:34:32

标签: ruby-on-rails forms controller

我的应用程序的一部分有时需要通知用户他们的操作,但应用程序不知道在提交表单之前通知用户的要求(这消除了Javascript)。

基本上发生的是用户上传一个或多个包含记录的文件,如果文件中的记录数大于X,那么我必须确定一个样本大小并且只使用那些文章,文章被选中的是随机选择的。我遇到的问题是用户可以上传创建操作上的文件以及编辑操作。因此,以前用户可能已经上传了2个从未达到大于X的记录数的文件,并且在最近的编辑中他们做了 - 现在我们需要创建一个样本集。

这不是一个大问题,但由于他们过去曾创建过文章,我们现在需要删除以前文件中的一些记录,因为我们正在创建一个样本集 - 所以我需要通知用户即将发生的事情。

因此,一旦用户点击提交,我确定文件中的记录数,如果大于XI需要显示消息,用户必须单击继续或取消(理想情况下,我只能在此处呈现视图这样我就可以向用户提供漂亮的样式信息。如果它小于X那么我不在乎并且继续。

1 个答案:

答案 0 :(得分:2)

您应该能够在创建发生后检查文件数,如果超过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