自定义操作和成功提交后正确重定向

时间:2019-03-13 09:15:07

标签: ruby-on-rails redirect controller

我实际上正在开发一个小型应用程序,用户可以在其中创建事件。它必须分三步完成。 为此,我在相关的控制器中创建了两个自定义操作。每个视图都有一个使用update网址的表单。 然后,我以这种方式自定义了更新方法:

    def training
      @event = Event.find(params[:event_id])
      @coach = Coach.find(@event.coach_id)
    end

    def confirm
      @event = Event.find(params[:event_id])
    end

    def update
      respond_to do |format|
        if @event.update(event_params)
          if params[:commit] == 'next'
            format.html { redirect_to booking_event_confirm_path(@event), notice: 'Event was successfully updated.' }
          else
            format.html { redirect_to booking_event_path(@event), notice: 'Event was successfully updated.' }
          end
        else
          if params[:commit] == 'next
            format.html { render :training }
          else
            format.html { render :edit }
          end
        end
      end
    end

作为Rails的初学者,我很乐意得到一些反馈...这看起来还可以,还是实现我的目标的更好方法?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您的解决方案还不错,但是有更好的方法来实现。我建议您检查Wicked gemthis tutorial

通常,用Google向导或多步骤表单。