2009-08-23 47 views
0

這裏是我的域名的基本概況:軌:指定HTTP動詞在redirect_to的

  • 用戶具有的課程
  • 用戶列表可以「選擇」的課程。通過 PUT動詞調用相應動作,將course_id存儲在 會話變量中,並將選定的 課程的「顯示」動作重定向到 。
  • 當用戶只有一個課程可用時,我想直接將他重定向到 到唯一可用的課程(並且 調用 課程之前的「select」方法)。

從那裏,我看到兩個選項:

  1. 保持「選擇」的行動,當用戶點擊該鏈接並添加時,選擇是自動的新動作......但是那並不是」 t看起來非常幹(即使我可以重構一些代碼)
  2. 從控制器本身調用PUT動作...但我還沒有找到(它甚至可能)?

任何替代方案是歡迎的。

感謝您的幫助。

P.

回答

0

在課程控制器:

def index 
    @courses = Course.all 
    if @courses.length == 1 #if only one course 
    @course = @courses[0] #get that course 
    session[:course_id] = @course.id #set the session 
    redirect_to :action => "show", :param => "#{@course.id}" #redirect 
    end 
    respond_to do |format| 
    format.html 
    format.xml { render :xml => @line_items } 
    end 
end 
+0

您好,感謝您的建議。我想避免重複會議[]部分,但如果沒有其他選擇,我認爲這將是一個必要的罪惡。 我可能會讓它成爲一個獨立的方法。 謝謝! P. – Pierre 2009-08-24 14:21:10

+0

皮爾,嘗試: DEF顯示 @course = Course.find(會話[:COURSE_ID] 代替 DEF顯示 @course = Course.find(PARAMS [:ID]) 和你應該能夠擺脫redirect_to行中的參數 – 2009-08-24 21:44:50