求助!namespace加上無複數名詞所造成的routing錯誤
以前沒有這樣搭配過,現在才遇到這樣的問題
我在routes.rb中加入
namespace :admin do
resources :news
end
在rake routes後出現:
admin_news_index GET /admin/news(.:format) admin/news#index
POST /admin/news(.:format) admin/news#create
new_admin_news GET /admin/news/new(.:format) admin/news#new
edit_admin_news GET /admin/news/:id/edit(.:format) admin/news#edit
admin_news GET /admin/news/:id(.:format) admin/news#show
PUT /admin/news/:id(.:format) admin/news#update
DELETE /admin/news/:id(.:format) admin/news#destroy
問題來了,當我要進入new頁面的時候,路徑應為new_admin_news_path,但進入卻跳出No route matches {:action=>"show", :controller=>"admin/news", :id=>#<News id: nil, news_type_id: nil, title: nil, content: nil, views: nil, status: nil, start_date: nil, end_date: nil, created_at: nil, updated_at: nil, news_key: nil>}
以上的routing錯誤,本以為news是單複數同名的關係,因此進入config/initializers/inflections.rb修改,但無論是在此修改,還是到在resources :news中加入:singular => :one_news,以上這兩個方法都無法使用,我懷疑:singular這個已經失效因為我故意打錯字也一樣。
請問版上有人遇到相同問題嗎?
我想我自己排除了這個問題,原因不是出在new_admin_news_path,而是在new的view裡的form_for,裡面create路徑有問題,因此造成錯誤,但是卻被rails的錯誤給搞混了。不過經過這個錯誤後我認為不可數名詞未來來是要避免...
<%= form_for([:admin, @news]) do |f| %>
是因為忘了放
嗎?