是什麼代碼redirect_to的@語法意義
redirect_to @user
在控制器的方法使用時,意味着Rails的?
它到底在哪裏重定向?它是否重定向到用戶控制器(如果是這樣,控制器的哪種方法),還是不通過控制器,而是直接轉到視圖?
是什麼代碼redirect_to的@語法意義
redirect_to @user
在控制器的方法使用時,意味着Rails的?
它到底在哪裏重定向?它是否重定向到用戶控制器(如果是這樣,控制器的哪種方法),還是不通過控制器,而是直接轉到視圖?
基本上它查找一個關於你的資源路線是如何工作的呢
這樣想
send("#{@user.class.name.underscore.downcase}_path", @user)
一堆東西這可能不是確切的代碼,但它應該幫助你想象什麼實際上還在繼續。
控制器始終運行,在這種情況下,它將成爲用戶控制器的顯示操作,除非您有一些時髦的路由器選項。
rake routes
解釋路線的佈局方式在這種情況下顯示的是
get /users/:id => users#show :as => "user_path"
從你進入模型替代是這樣的
從您的路線創建的正則表達式
:id是參數
會匹配inbound_object到路徑fu nction這是@user
:id is replaced with @user.id
將瀏覽器重定向至在選項中指定的目標。此參數可以採取三種形式:
...
記錄 - 該網址將通過調用url_for與選擇,這將引用一個名爲URL該記錄生成。
而且從url_for docs:
傳遞一個記錄(如一個活動記錄或Active資源),而不是一個哈希作爲選項參數將觸發該記錄的命名 路線。查找將發生在 類的名稱上。因此傳遞Workshop對象將嘗試使用workshop_path路由。如果您有嵌套路線,例如 admin_workshop_path,則必須明確調用它(url_for的 無法猜測該路線)。
這是在工作中寫
redirect_to user_path(@user)
更多Rails的魔法在這裏,是好還是壞的等價物。
它要求用戶的這樣
redirect_to user_path(@user)
重要的一點顯示功能:如果我們看到的路線則:ID傳遞,但這裏對象獲得通過
當中去轉換成的ID通過
用戶DEF to_param self.id 端
其可我Ñ模型,我們可以它覆蓋到
所以基本上以轉換髮生第一
redirect_to @user => redirect_to user_path(@user)
然後
@user => @user.id
在用戶控制器的顯示方法。 –