2010-02-10 143 views
0

创建操作我有我的应用程序的一部分,有时需要通知他们行动的用户,但应用程序不知道的要求告知用户,直到形式已经经过提交(这消除了Javascript)。创建一个多步骤的Rails中

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

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

因此,一旦用户点击提交,我确定的文件中的记录数,如果该值大于XI需要显示一条消息,用户必须点击继续或取消(理想情况下我可以只呈现视图在这里,我可以向用户提供很好的风格信息)。如果它小于X,那么我不在乎并继续。

回答

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 
+0

我想这可能工作..我唯一担心的是,我使用的accepts_nested_attributes_for这里,所以它的创建文件作为一个嵌套元素的一部分 - 让我这个工作,我会让你知道。如果您还想到其他内容,请继续发帖,谢谢您的参与! – Rabbott 2010-02-10 14:16:28

+0

“在此动作中多次调用渲染和/或重定向,请注意,您只能调用渲染或重定向,并且最多一次执行一次动作,同时请注意,重定向和渲染都不会终止执行动作,因此如果您想要重定向后退出的动作,你需要做的东西,如“redirect_to的(...),并返回”。” – Rabbott 2010-02-10 15:36:14

+0

什么版本的Rails?在示例 – 2010-02-10 21:15:02