Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 向Rails的资源添加动词';s路由_Ruby On Rails_Rest_Rails Routing - Fatal编程技术网

Ruby on rails 向Rails的资源添加动词';s路由

Ruby on rails 向Rails的资源添加动词';s路由,ruby-on-rails,rest,rails-routing,Ruby On Rails,Rest,Rails Routing,默认情况下,Rails路由的resources关键字创建7个操作 例如,使用资源:foos: ----------------------- | Verb | Action | ----------------------- | GET | index | | GET | show | | GET | edit | | GET | new | | PUT/PATCH | update | | POST

默认情况下,Rails路由的
resources
关键字创建7个操作

例如,使用
资源:foos

-----------------------
| Verb      | Action  |
-----------------------
| GET       | index   |
| GET       | show    |
| GET       | edit    |
| GET       | new     |
| PUT/PATCH | update  |
| POST      | create  |
| DELETE    | destroy |
-----------------------
如何在此列表中添加
选项
动词,例如:

--------------------------------
| Verb    | Action             |
--------------------------------
| ...     | ...                |
| OPTIONS | member_options     |
| OPTIONS | collection_options |
--------------------------------
换句话说,默认情况下,对于每种资源,我们必须使用如下内容:

match    '/foos/',      via: :options, controller: 'foos', action: 'collection_options'
match    '/foos/:id/',  via: :options, controller: 'foos', action: 'member_options', as: :foo
resources :foos
相反,我更喜欢自定义设置,以便只执行以下操作:

resources :foos

为了避免列出选项谓词的每个路径,可以添加


为了避免列出选项谓词的每个路径,可以添加


你能解释一下为什么要在标准集合之外加入额外的动词吗?可以更改谓词的操作,但如果可以添加其他谓词,请单击IDK。我需要为每个资源使用
选项
谓词,以便构建RESTful服务。这个问题的目的是让我的路线干涸。可能的重复:不,它不是同一个问题。它可能不是同一个问题,但答案的核心在那里。您可以尝试创建包含这些附加路由的自己的路由方法。您能否解释为什么要在标准集之外包含附加谓词?可以更改谓词的操作,但如果可以添加其他谓词,请单击IDK。我需要为每个资源使用
选项
谓词,以便构建RESTful服务。这个问题的目的是让我的路线干涸。可能的重复:不,它不是同一个问题。它可能不是同一个问题,但答案的核心在那里。您可以尝试创建包含这些附加路由的自己的路由方法。
match '*path', to: 'application#cors_preflight_check', via: [:options]