2011-01-10 20 views
0

Ich benutze Simple_captcha. Es funktionierte finden, bis ich die folgende Zeile in routes.rbWeird Rails 3 Route Problem

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

Captcha-Bild nicht angezeigt wird und das Protokoll zeigt die folgende Fehlermeldung.

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): 

Warum wirkt sich die Linie in den Routen auf simple_captcha aus?

Danke.

Sam

Antwort

0

Ermöglicht die Einschränkung nicht davon ausgehen, für jetzt existieren. Gegeben :controller(/:action) übereinstimmt und versucht, einen bestimmten Controller und dann eine Aktion zu entsprechen, die Route /simple_captcha/8cdf70c193dc8823f281828f11c250e1739883da entspricht simple_captcha als Controller und 8cdf70c193dc8823f281828f11c250e1739883da als Aktion. Sie könnten mehr von einem ":controller/(:id)" als Route Matcher versuchen.

0

Ich habe das Problem durch Ändern einer Zeile behoben.

Von:

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

An:

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

Ich dachte, sie gleich sind, aber sie sind offensichtlich nicht. Wie unterscheiden sie sich?