2012-08-03 94 views
1

這段代碼的頁面時拋出一個錯誤渲染,因爲它沒有找到該鏈接的路徑軌道格式化後的方法較舊的3.2版本,但在升級到3.2.4以後,它開始拋出一個錯誤,因爲它只在一條POST路由存在時纔會尋找GET路徑(它意味着去一個標準的創建方法)。鏈接/按鈕3.2.4+

我將它從link_to切換到button_to,並嘗試明確地從HTML選項中散列出URL選項以防止模糊,但我仍然搞砸了一些東西。

我假設如果button_to是炸彈,我正在做一件令人難以置信的錯誤。我只是不確定是什麼。

回答

2

,它的回落到一個GET請求表明:method => :post不是正在進入選項參數的事實:

# File actionpack/lib/action_view/helpers/url_helper.rb, line 231 
def link_to(*args, &block) 
    if block_given? 
    options  = args.first || {} 
    html_options = args.second 
    link_to(capture(&block), options, html_options) 
    else 
    name   = args[0] 
    options  = args[1] || {} 
    html_options = args[2] 
    ..... 
    end 
end 

由於unless操作的優先級比方法調用越大,葉子division_clusters_path(@current_dvision, courses: @cluster_courses)作爲一個可能的罪魁禍首。如果它返回的是被args [1]吞噬的東西,那麼args [2]會得到剩下的選項(這是爲args [1]指定的)。順便說一下,它看起來像有一個錯字:@current_dvision

+0

謝謝,這是一個尷尬的教訓(這是錯字)。我手中輸入了所有的檢查,以驗證數據傳遞到鏈接,所以我看到了我期望看到的。我認爲這是模糊的鏈接參數格式,因爲這是我最常見的錯誤,當談到link_to類型的東西。對不起,謝謝:) – cgr 2012-08-03 21:46:35