[英]Rails routing not working for case sensitive URLs
使用此命令生成Pages Controller后 -
>rails g controller Pages Home About Contact
並且在routes.rb
文件中取消注釋行match ':controller(/:action(/:id))(.:format)'
。
當我訪問我的網址時 -
http://localhost:3000/pages/home
它拋出錯誤
未知的行動
無法找到PagesController的操作'home'
然而,如果這樣訪問,這是有效的 -
http://localhost:3000/pages/Home
小/ Up案例是我的第一個想法,所以我按照這里的建議安裝了route_downcaser
現在問題是兩個URL都拋出相同的錯誤 -
http://localhost:3000/pages/home
http://localhost:3000/pages/Home
錯誤
未知的行動
無法找到PagesController的操作'home'
讓我知道如何解決此錯誤。
我在Github的項目 - Github URL
使用Windows 7
Rails版本 - 3.2.9
編輯
routes.rb file -
Addbootstrap::Application.routes.draw do
get "pages/Home"
get "pages/About"
get "pages/Contact"
get "pages/Drop_Down"
match ':controller(/:action(/:id))(.:format)'
end
在ruby中,您不想使用upcased方法名稱。 以大寫字母開頭的名稱保留給常量(類/模塊)。
除此之外,如果你使用的是一個寶石,它會降低從Home到home的路徑,並且該方法被命名為Home,那么這就是失敗的原因。 確保方法名稱為downcased。
如果有人要指出這一點,我會搶先一步。 CapsCase方法名稱在ruby中有效,它們不是常規的,可能會令人困惑。 因此被認為是BadIdea。 關於CapsCase名稱唯一真正特別的事情是當它們被賦值時,如果你再次嘗試分配它,ruby會引發警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.