ruby-on-rails - 来自自己的控制器方法的嵌套资源 - 或创建全新的控制器?
问题描述
问题:当用户(登录时)创建订单时,它们会被发送到 OrderControllers 显示页面,该页面只有在买卖双方都登录时才能访问。从这里他们可以编辑/更新他们的订单等。
我们还有guest_user
一个未登录的人,对于他们,我需要在浏览器中确认订单(我正在使用 Devise gem)
我创建了一个方法:
def order_confirmation
在订单控制器中。
虽然,我怎样才能将它嵌套在订单中,以便页面知道要显示哪个订单。
这是否可以在它自己的控制器下嵌套方法,或者我应该只为订单确认创建一个小控制器?
例如:example.com/orders/1/order-confirmation
除了嵌套和创建控制器之外,也许还有更好的方法来解决这个问题?
我试过:
resources :orders do
collection do
get 'order_confirmation'
end
end
与:
def order_confirmation
@order = Order.all.find(params[:id])
end
但它不会像我想要的那样工作。
耙子路线给了我:
order_confirmation_orders GET /orders/order_confirmation(.:format)
我怎样才能得到?:
order_order_confirmation_orders GET /orders/id/order_confirmation(.:format)
解决方案
我能够从这个 SO 帖子的帮助中弄清楚这一点:
通过使用:
resources :orders do
get 'order_confirmation', :on => :member
end
这将创建:
order_confirmation_order GET /orders/:id/order_confirmation(.:format) orders#order_confirmation
推荐阅读
- javascript - 如果输入了两个必填字段,则不会为 POST 触发 XMLHttpRequest
- python - 检测按键并将其显示在标签 tkinter
- amazon-web-services - 将启用 MFA 的 AWS Cognito 应用程序推送到苹果
- flutter - 向 Row() 中的小部件添加具有特定宽度的间距的最有效方法是什么?
- python - 我的python人脸识别项目面临这种类型的错误。摄像头灯亮但不显示摄像头界面
- ios - 核心数据崩溃与方法“hasChanges”
- ios - 检测 UIPageViewController 开始滑动
- c++ - 为什么/unordered_map 和 unordered_set 更慢?
- javascript - 在产品网格视图中为每个产品添加数量字段(ecwid 电子商务)
- php - Vestacp - smpt 电子邮件、mail() 或 swiftmailer 无法使用 php