我在routes.rb中 有match ":id" => "people#show"
現在我可以訪問http://localhost:3000/1
Rails的隱藏控制器名稱
,但在意見<%=的link_to '展',人們%>它會產生http://localhost:3000/people/1
,
我想成爲http://localhost:3000/1
我在routes.rb中 有match ":id" => "people#show"
現在我可以訪問http://localhost:3000/1
Rails的隱藏控制器名稱
,但在意見<%=的link_to '展',人們%>它會產生http://localhost:3000/people/1
,
我想成爲http://localhost:3000/1
你可以編寫一個自定義路由來匹配config/routes.rb中的路由。在routes.rb文件的底部,您將有類似於匹配':controller(/:action(/:id(.:format)))'
或類似resources :people
之類的路線。您可能必須編寫與您需要的路線類型相匹配的路線。
你可以做這樣的事情,以確保只有數字ID匹配:
match '/:id' => 'people#show', :constraints => {:id => /\d+/}
一個很好的選擇可能是使用某種標識,即使它不是控制器名稱:http://localhost:3000/p/1。這至少會確保如果添加其他控制器和操作,您最終不必更改路由結構。
您必須創建一條命名路線。
match ':id' => 'people#show', :as => :person
並修復您的意見,以使用您的新方法person_path(user_id)
。
出現錯誤 - 路由要求中不允許使用Regexp主播字符:/^\ d/ – pamella 2011-01-11 23:05:52