【问题标题】:get, match and resources in routes.rb在 routes.rb 中获取、匹配和资源
【发布时间】:2011-05-24 04:10:53
【问题描述】:

我是 Rails 新手。当我使用routes.rb中的资源时,我发现很奇怪,当我将页面重定向到控制器/索引后,它会渲染控制器/显示。

我知道GET controller/actionmatch "controller/action", :to => "controller/action" 相同

我认为关于重定向的奇怪事情发生在我身上,类似于 GET 和 Match。

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    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'
    

    它只是为您省去了麻烦。

    顺便说一句,getmatch 并不完全相同。 getpostputdelete 是将路由限制为单个 HTTP 动词的快捷方式。下面的两个路由定义是等价的。

    match 'foo' => 'controller#action', :method => :get
    get   'foo' => 'controller#action'
    

    【讨论】:

    • 哇,这正是我想要的信息,谢谢 edgerunner
    • 最近的 Rails 还包含了一个patch 路由,和put 一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多