我對命名幫助程序有一個非常奇怪的問題。因此,讓我們開始與有問題的路線:嵌套資源(具有自定義控制器參數)指定的助手不能正確生成URL
resources :subjects, path: 'library' do
resources :modules, controller: 'subject_modules'
end
凡Subjects#to_param
回報self.slug
。現在,一個名爲 「foo」 的主題和模塊ID爲1,當受試者是@subject
和模塊m
:
link_to subject_modules_path(@subject, m)
給/library/foo/modules.1link_to edit_subject_module_path(@subject, m)
給人/庫/富/模塊/ 1 /編輯link_to m
給人/庫/ 1 /模塊/物理
至於link_to [@subject, m]
,我得到:
路由錯誤
No route matches {:action=>"show", :controller=>"subject_modules", :subject_id=>#<Subject id: 2, name: "Foo", created_at: "2011-12-30 02:00:38", updated_at: "2011-12-30 02:00:38", slug: "foo">, :id=>#<SubjectModule ---snipped--->}
有誰知道爲什麼路線被破壞成這個樣子,什麼我可能做解決這一問題?
編輯:
耙路線:
subject_modules GET /library/:subject_id/modules(.:format) {:action=>"index", :controller=>"subject_modules"}
POST /library/:subject_id/modules(.:format) {:action=>"create", :controller=>"subject_modules"}
new_subject_module GET /library/:subject_id/modules/new(.:format) {:action=>"new", :controller=>"subject_modules"}
edit_subject_module GET /library/:subject_id/modules/:id/edit(.:format) {:action=>"edit", :controller=>"subject_modules"}
subject_module GET /library/:subject_id/modules/:id(.:format) {:action=>"show", :controller=>"subject_modules"}
PUT /library/:subject_id/modules/:id(.:format) {:action=>"update", :controller=>"subject_modules"}
DELETE /library/:subject_id/modules/:id(.:format) {:action=>"destroy", :controller=>"subject_modules"}
您可能重新啓動了使Rails合作的服務器。 – 2012-01-03 23:02:37
@RyanBigg當Rails不在使用devmode的時候會自動重新生成東西,並檢測到文件中的變化? – unrelativity 2012-01-03 23:06:34
它有一些怪癖,有時並沒有檢測到這些變化。沒有辦法知道這是否是問題。 – 2012-01-04 22:10:44