我有一個毛茸茸的路由集合我是從梁2升級到Rails的3.在Rails 2,路由寫入文件,像這樣:Rails路由,作爲選項也改變參數哈希...如何覆蓋呢?
map.resources :stories, :path_prefix => ':user_id', :name_prefix => 'user_', :controller => :user_stories, :do |story|
story.resources :article_clips
end
和產生這個路由集合:
user_story_article_clips GET /:user_id/stories/:story_id/article_clips(.:format) {:controller=>"article_clips", :action=>"index"}
POST /:user_id/stories/:story_id/article_clips(.:format) {:controller=>"article_clips", :action=>"create"}
new_user_story_article_clip GET /:user_id/stories/:story_id/article_clips/new(.:format) {:controller=>"article_clips", :action=>"new"}
edit_user_story_article_clip GET /:user_id/stories/:story_id/article_clips/:id/edit(.:format) {:controller=>"article_clips", :action=>"edit"}
user_story_article_clip GET /:user_id/stories/:story_id/article_clips/:id(.:format) {:controller=>"article_clips", :action=>"show"}
PUT /:user_id/stories/:story_id/article_clips/:id(.:format) {:controller=>"article_clips", :action=>"update"}
DELETE /:user_id/stories/:story_id/article_clips/:id(.:format) {:controller=>"article_clips", :action=>"destroy"}
注意URL示例如何包含':story_id' - 也就是說,name_prefix沒有影響params散列中'story_id'的名稱(即,您可以通過' params [:story_id]'...
所以我設法翻譯t他取得了一些成功,這是我到目前爲止有:
scope ":user_id" do
resources :stories, :as => 'user_story', :controller => :user_stories do
resources :article_clips
end
end
這一切都很好,除非使用「:爲」,請注意如何將越來越投入params哈希表已重命名爲「對象:user_story_id 「:
user_story_article_clips GET /:user_id/stories/:user_story_id/article_clips(.:format) {:action=>"index", :controller=>"article_clips"}
POST /:user_id/stories/:user_story_id/article_clips(.:format) {:action=>"create", :controller=>"article_clips"}
new_user_story_article_clip GET /:user_id/stories/:user_story_id/article_clips/new(.:format) {:action=>"new", :controller=>"article_clips"}
edit_user_story_article_clip GET /:user_id/stories/:user_story_id/article_clips/:id/edit(.:format) {:action=>"edit", :controller=>"article_clips"}
user_story_article_clip GET /:user_id/stories/:user_story_id/article_clips/:id(.:format) {:action=>"show", :controller=>"article_clips"}
PUT /:user_id/stories/:user_story_id/article_clips/:id(.:format) {:action=>"update", :controller=>"article_clips"}
DELETE /:user_id/stories/:user_story_id/article_clips/:id(.:format) {:action=>"destroy", :controller=>"article_clips"}
我已經嘗試了很多不同的東西,‘:name_prefix’沒有在所有的工作,那就是:串流中刪除'的事也行不通了。我怎樣才能做到這一點?我需要用'match'語句手動寫出這些路線嗎?
非常感謝您的幫助。