2011-01-10 98 views
0

我正在使用simple_captcha。它的工作發現,直到我添加以下行的routes.rb奇怪的軌道3路線問題

match ":controller(/:action)", :constraints => {:controller => /sandbox\/[^\/]+/} 

驗證碼圖片沒有顯示和日誌顯示以下錯誤消息。

Started GET "/simple_captcha/8cdf70c193dc8823f281828f11c250e1739883da?time=1294644088" for 127.0.0.1 at Sun Jan 09 23:21:29 -0800 2011 

AbstractController::ActionNotFound (The action '8cdf70c193dc8823f281828f11c250e1739883da' could not be found for SimpleCaptchaController): 

爲什麼路由中的行會影響simple_captcha?

謝謝。

山姆

回答

0

讓我們假設約束現在不存在。給定:controller(/:action)匹配並嘗試匹配特定的控制器,然後執行操作,則路由/simple_captcha/8cdf70c193dc8823f281828f11c250e1739883dasimple_captcha作爲控制器,將8cdf70c193dc8823f281828f11c250e1739883da作爲操作匹配。你可以嘗試更多的":controller/(:id)"作爲路由匹配器。

0

我通過修改一行來解決了這個問題。

來源:

match ":controller(/:action)", :constraints => {:controller => /sandbox\/[^\/]+/} 

要:

match ":controller(/:action)", :controller => /sandbox\/[^\/]+/ 

我還以爲他們是一樣的,但顯然事實並非如此。他們有什麼不同?