2012-04-13 45 views
0

我有一個軌道頁面修改ActiveRecord。當然,如果用戶重新加載頁面,我們將嘗試重複修改,這將失敗。 我想重定向用戶將「重新加載」的URL(使用瀏覽器「重新加載當前頁面」按鈕)。 我想重新加載使用相同的控制器,相同的ID,不同的行動(不是「更新」,但「編輯」) 謝謝。Rails頁面重新加載 - 如何控制URL?

新增更新方法

# PUT /machines/<uuid> - a catch-all path for machine and channel modifications 

    def update 

    puts "machines:update #{params.to_s}" if @@debug_machines 
    @id = params[:id] 
    @machine = Machine.find_by_uuid(@id) 

    puts "machines:update #{@machine.to_s_full}" if @@debug_machines 

    session[:machine_id] = @id 

    if params[:delete_channel] 
     first = params[:delete_channel].keys.first.to_i 
     puts "machines:update delete_channel #{first.to_s}" if @@debug_machines 
     last = @machine.last_light_index(first) 
     if last 
     last.downto(first) do |i| 
      @machine.channels.delete(@machine.channels[i]) 
     end 
     else 
     @machine.channels.delete(@machine.channels[first])if @machine.channels[first] 
     end 

    elsif params[:delete_filter] 
     i = params[:delete_filter].keys.first.to_i 
     puts "machines:update delete_filter #{i.to_s}" if @@debug_machines 
     channel = @machine.channels[i] 
     puts "machines:update delete_filter #{channel.to_s}" if @@debug_machines 
     @machine.channels.delete(channels) if channel 

    elsif params[:add_filter] 
     i = @machine.last_light_index(params[:add_filter].keys.first.to_i) 
     puts "machines:update add_filter channel #{i.to_s}" if @@debug_machines 
     light = @machine.channels[i].light 
     puts "machines:update add_filter light #{light.to_s}" if @@debug_machines 
     @machine.channels.insert(i + 1, Channel.new(:light => light)) 


    elsif params[:commit] 

... lots more similar stuff here ... 

    end 

    puts "machines:update after update #{@machine.to_s_full}" if @@debug_machines 

    render :action => :edit 
    end 
+0

只是爲了澄清,可以自己信息的控制器#更新方法? – Deradon 2012-04-13 20:23:30

回答

1

它的那樣簡單

redirect_to :action => :edit 
+0

該操作已經重定向到:action =>編輯,所以我不明白答案。 – deeeptext 2012-04-13 22:11:43

+2

它不會重定向到操作':edit',它只是呈現其視圖。這是兩件不同的事情。 – 2012-04-13 22:13:17