在routes.rb中获取,匹配和资源

mko*_*mko 9 ruby-on-rails

嘿,伙计我是Rails的新手当我在routes.rb中使用资源时发现它非常奇怪,在我将页面重定向到控制器/索引后,它呈现控制器/显示

我知道GET controller/action是一样的match "controller/action", :to => "controller/action"

我认为关于重定向发生了奇怪的事情,类似于GET和Match.

所以我想知道资源究竟是什么意思,我可以使用一些简单的匹配做同样的事情吗?

edg*_*ner 23

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'
Run Code Online (Sandbox Code Playgroud)

它只是为您省去了麻烦.

顺便说一下,get并不完全一样match.get,post,putdelete用于限制所述路线单个HTTP动词快捷方式.以下两个路线定义是等效的.

match 'foo' => 'controller#action', :method => :get
get   'foo' => 'controller#action'
Run Code Online (Sandbox Code Playgroud)