我是 Rails 的新手。当我使用 routes.rb 中的资源时,我发现它很奇怪,在我将页面重定向到 controller/index 后,它呈现了 controller/show 。
我知道 GET controller/action
与 match "controller/action", :to => "controller/action"
相同
我认为关于重定向的奇怪事情发生在我身上,类似于 GET 和 Match。
所以我想知道资源到底是什么意思,我可以使用一些简单的匹配来做同样的事情吗?
最佳答案
resources
是生成 REST 所需的七个路由的快捷方式界面。resources :widgets
相当于写
get "widgets" => "widgets#index", :as => 'widgets'
get "widgets/:id" => "widgets#show", :as => 'widget'
get "widgets/new" => "widgets#new", :as => 'new_widget'
post "widgets" => "widgets#create", :as => 'widgets'
get "widgets/:id/edit" => "widgets#edit", :as => 'edit_widget'
patch "widgets/:id" => "widgets#update", :as => 'widget'
put "widgets/:id" => "widgets#update", :as => 'widget'
delete "widgets/:id" => "widgets#destroy", :as => 'widget'
它只是为您省去了麻烦。
顺便说一句,
get
与 match
不完全相同. get
, post
, put
和 delete
是将路由限制为单个 HTTP 动词的快捷方式。下面的两个路由定义是等效的。match 'foo' => 'controller#action', :method => :get
get 'foo' => 'controller#action'
关于ruby-on-rails - 在 routes.rb 中获取、匹配和资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4420754/