如何在路由中配置新的更新方法

时间:2014-01-07 15:22:03

标签: ruby-on-rails

此时我想创建一个具有相同功能的新方法而不是更新默认方法所以我这样做,方法的名称是'updatepaso1'来自名为'editpaso1.html.erb'的文件

editpaso1.html.erb

<%= simple_form_for([@persona, @caracterizacion], 
:url => url_for(:action => 'updatepaso1', :controller => 'caracterizaciones'), 
:method => 'get') do |f| %>
   content form
<% end %>

caracterizaciones_controller.rb

def updatepaso1
    if @caracterizacion.update(caracterizacion_params)
        redirect_to editpaso2_persona_caracterizacion_path(@persona, @caracterizacion), notice: 'Paso2 Finalizado Correctamente'
    else
        render action: 'editpaso1'
    end
end

和routes.rb

resources :personas do
    resources :caracterizaciones do

        collection do
            get :updatepaso1 # < --
            get :updatepaso2
        end

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

如果我尝试使用默认的“更新”方法,它可以正常工作,但在这种情况下,当我使用该方法更新信息时,应用重定向此网址

http://localhost:3002/personas/2/caracterizaciones/updatepaso1

在更新信息后应重定向此信息

http://localhost:3002/personas/2/caracterizaciones/1/editpaso2

所以我认为问题是'updatepaso1'方法的路由配置

感谢您的帮助

0 个答案:

没有答案