控制器的当前控制器和动作

时间:2014-01-06 18:51:01

标签: ruby-on-rails

此时我正在尝试从更新操作中了解当前操作和控制器的内容,并根据具体情况重定向特定文件

def editpaso1
end

def editpaso2
end

def editpaso3
end    

def create
    @caracterizacion = Caracterizacion.new(caracterizacion_params)

    if @caracterizacion.save
        redirect_to editpaso1_persona_caracterizacion_path(@persona, @caracterizacion), notice: 'Paso1 Finalizado Correctamente'
    else
        render action: 'new'
    end
end

def update
    if @caracterizacion.update(caracterizacion_params)
        if controller_name.to_s == 'caracterizaciones' && action_name.to_s == 'editpaso1'
            redirect_to editpaso2_persona_caracterizacion_path(@persona, @caracterizacion), notice: 'Paso2 Finalizado Correctamente'
        elsif controller_name.to_s == 'caracterizaciones' && action_name.to_s == 'editpaso2'
            redirect_to editpaso3_persona_caracterizacion_path(@persona, @caracterizacion), notice: 'Paso3 Finalizado Correctamente'
        elsif controller_name.to_s == 'caracterizaciones' && action_name.to_s == 'editpaso3'
            redirect_to @caracterizacion, notice: 'Caracterizacion was successfully updated.'
        end
    else
        if controller_name.to_s == 'caracterizaciones' && action_name.to_s == 'editpaso1'
            render action: 'editpaso1'
        elsif controller_name.to_s == 'caracterizaciones' && action_name.to_s == 'editpaso2'
            render action: 'editpaso2'
        elsif controller_name.to_s == 'caracterizaciones' && action_name.to_s == 'editpaso3'
            render action: 'editpaso3'
        end
    end
end

正如你所看到的,首先创建重定向到editpaso1,这工作正常,但问题是当应用程序尝试重定向到editpaso2时因为出现此错误

Missing template caracterizaciones/update, application/update with...

并重定向到此网址

http://localhost:3000/personas/3/caracterizaciones/12

但应该重定向到这个

http://localhost:3000/personas/3/caracterizaciones/12/editpaso2

所以我认为问题在于验证当前的行动

这样我就有了其他文件

resources :personas do
    resources :caracterizaciones do

        member do
            get :editpaso1
            get :editpaso2
            get :editpaso3
        end
    end
end

并且所有编辑的文件都使用更新操作,我这样做是因为该表有126个字段

抱歉我的英语,不是我的母语

感谢您的帮助

0 个答案:

没有答案