所以我就遇到了這個問題範圍的路線和的form_for:form_for and scopes, rails 3我如何重寫Rail Route Helper中的方法(PUT vs GET)?
我的問題更糟糕的是,雖然因爲我不只想範圍內的所有方法,我想大家是在除了GET「/管理員」 /節目。
所以我的routes.rb有這樣的事情:
scope '/admin' do
resources 'lessons', except: [:show]
end
get "lessons/:id" => "lessons#show", :as => "lesson"
運行rake路線事實上確實表現出我想要的東西,其中lesson_path的只是方法不同的兩個版本,PUT VS GET。因此,解決辦法他人提供,你做這樣的事情:
url = @lesson.persisted? ? lesson_path(@lesson) : lessons_path
form_for @lesson, url: url do
對我不起作用,因爲lesson_path(@lesson)將始終返回不具有仍打破了/管理前綴GET路徑我形成。
所以我不明白的是,我可以在rails路徑助手中指定方法,以便它將使用以/ admin開頭的路徑嗎?還是有一種完全不同的方式來解決這個問題?我知道我可以山洞,只是通過改變歧義:
get "lessons/:id" => "lessons#show", :as => "lesson"
到
get "lessons/:id" => "lessons#show", :as => "show_lesson"
但在這一點上,我只是想知道,如果它是可能的,如果是的話什麼是「正確的」辦法。
順便說一句,我目前通過簡單的前綴,我用「/管理員」這絕對是一個糟糕的解決辦法手動生成的PUT案件的網址有這方面的工作。 – eagspoo