ruby-on-rails - 将 2 个对象传递给 RSpec 中的命名路由
问题描述
在我的 RSpec 测试中,我做了:
delete recurring_events_path(@group, @recurring_event)
,但这会产生DELETE "/groups/705777939/recurring_events.496
我应该如何制作论点以recurring_events_path
使其产生/groups/705777939/recurring_events/496
?
路线.rb
45 resources :groups, except: %i[new edit]
[snipp..]
56 scope "groups/:group_id" do
57 resources :posts, except: %i[new edit]
58 put "posts/:id/pin", to: "posts#pin"
59
60 resources :recurring_events, except: %i[show]
61 get "recurring_events/upcoming" => "recurring_events#upcoming", as: :upcoming
62 get "recurring_events/past" => "recurring_events#past", as: :past
63
64 scope "/posts/:post_id" do
65 resources :comments, except: %i[new edit]
66 end
67 end
$ rake 路线
recurring_events GET /groups/:group_id/recurring_events(.:format) recurring_events#index
POST /groups/:group_id/recurring_events(.:format) recurring_events#create
PATCH /groups/:group_id/recurring_events/:id(.:format) recurring_events#update
PUT /groups/:group_id/recurring_events/:id(.:format) recurring_events#update
DELETE /groups/:group_id/recurring_events/:id(.:format) recurring_events#destroy
解决方案
recurring_events_path
这里代表你的#index
路线
如果您resource
在路线中使用,则路径应该是destroy_recurring_events_path
. 否则,您需要as:
在路由声明中指定选项。像as: :destroy_recurring_events
rake routes
您可以使用命令查看路由的别名
推荐阅读
- delphi-7 - Delphi 7行缩进选项?
- python - 使用 Selenium 进行 Web 抓取未捕获全文
- elasticsearch - Logstash 似乎正在摄取时间戳不正确的数据?
- matlab - Matlab中不能隐藏的函数
- css - 反应如何为不同的组件打印横向/纵向
- c - 将文件中的输入存储到C中的结构中
- python - 备份和python脚本损坏的问题
- git - 为什么我的 git push 只推送指向 master 的提交,为什么它不能在提交指向 master 之后推送每个提交?
- node.js - 在通过 https 发布请求发送之前将密码输入存储在一个状态中是否危险?
- c - 如何用C获取窗口的类名